测试必须在时间、质量和成本之间获取一个平衡点,这是测试策略和测试设计的价值体现。

2.1 操作元素基本方法

上一篇 / 下一篇  2018-06-12 10:34:59 / 个人分类:Python+Selenium2 WebDriver API

2.1 操作元素基本方法

51Testing软件测试网qc5E$uU6g`1G a^S

前言51Testing软件测试网S1U|+D T6p`(q
前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架。我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API。
f8j:r qE|I7rIo#U0本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开、前进、后退、刷新、设置窗口大小、截屏、退出等操作。51Testing软件测试网%@&_ w-rg U6x|+f

2.1.1 打开网页

51Testing软件测试网Tq$WF|)K1c)o Qw

1.从selenium里面导入webdriver模块
r-d d Ac:OYm02.打开Firefox浏览器(Ie和Chrome对应下面的)
[)c^)s$Hc^03.打开百度网址51Testing软件测试网-q5K}|rw@$e

0}d-u*bQA"aA;v0

8TG_i'Ul X0

2.1.2 设置休眠

51Testing软件测试网H#q }2r/R-q!E!G$Y

1.由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作51Testing软件测试网(ih)T K6}4N
2.导入time模块,time模块是Python自带的,所以无需下载51Testing软件测试网X*QZJ ~w
3.设置等待时间,单位是秒(s),时间值可以是小数也可以是整数51Testing软件测试网A`1Y)if0q]

51Testing软件测试网@1P^9ng"^@ W

51Testing软件测试网0VHO{ N

2.1.3 页面刷新

A-PT5X8l:L%Gl"r01.有时候页面操作后,数据可能没及时同步,需要重新刷新51Testing软件测试网b/IW}`-Brs
2.这里可以模拟刷新页面操作,相当于浏览器输入框后面的刷新按钮

J idf6|U#D,TM051Testing软件测试网:ZZ5a[@'j;bs/Y

CB'X F@0

2.1.4 页面切换

#X}#d4O9]01.当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮。

"b.F_/]8g2A/I051Testing软件测试网 uo,q6s y!Bv

2.返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮。

$_*T r.He/Auo,^"R051Testing软件测试网w0uV,lx}5P#Wt I

51Testing软件测试网BJ#~zzQ1l/^ ZW

2.1.5 设置窗口大小

51Testing软件测试网!U!e\5V.y&Y*K6D

1.可以设置浏览器窗口大小,如设置窗口大小为手机分辨率540*960
3_7q S,RHs U[&W$g02.也可以最大化窗口51Testing软件测试网.l+I.DJr/Q

51Testing软件测试网]0GK9ib1l"r

51Testing软件测试网[ NZ:Q~%j

 2.1.6 截屏

J%^-V(B*D!JLTV`^01. 打开网站之后,也可以对屏幕截屏51Testing软件测试网I;Lt4rN7?4J-I
2.截屏后设置指定的保存路径+文件名称+后缀

yoE [5yo+la PM051Testing软件测试网{-c`*f?A

oaVgG)JY H7H0

2.1.7 退出

:l}~J pj$D01.退出有两种方式,一种是close;另外一种是quit。51Testing软件测试网_\PL;U'k
2.close用于关闭当前窗口,当打开的窗口较多时,就可以用close关闭部分窗口。51Testing软件测试网OlG;S^ [(d!|4~
3.quit用于结束进程,关闭所有的窗口。51Testing软件测试网bnyd y2ns
4.最后结束测试,要用quit。quit可以回收c盘的临时文件。51Testing软件测试网H#e)z1Vs?)t8J^

0ex z?p(@)T!z051Testing软件测试网 Nh5GJp:rh"W

J^6s j!eolF0掌握了浏览器的基本操作后,接下来就可以开始学习元素定位了,元素定位需要有一定的html基础。没有基础的可以按下浏览器的F12快捷键先看下html的布局,先了解一些就可以了。

:_(p:Ko XHE:^/iq G0

2.1.8 加载浏览器配置

g)B2XO;T,o{{_+X-c0启动浏览器后,发现右上角安装的插件不见了,这是因为webdriver启动浏览器时候,是开的一个虚拟线程,跟手工点开是有区别的,selenium的一切操作都是模拟人工(不完全等于人工操作)。

gK m8{,I d]4RU051Testing软件测试网"I-XI#vReQQC

加载Firefox配置51Testing软件测试网6fMk py

i.PX$m2\kQ0   有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载,profile_directory既为浏览器配置文件的路径地址。

8{o ~7v'C6Mw%`0

"w1{5L0N*w'V}b7D0一、遇到问题
bb/E%\*D,n01.在使用脚本打开浏览器时候,发现右上角原来下载的插件firebug不见了,到底去哪了呢?51Testing软件测试网$?:QEw#X2U| W,{ Bm
2.用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览器不是一个进程。51Testing软件测试网o@u;sfX3v c
所以没主动加载插件,不过selenium里面其实提供了对应的方法去打开,只是很少有人用到。

6iw;qym z,Q0vM051Testing软件测试网5t ~m^ |1^x

51Testing软件测试网 o1[)s.f I

@R,m!a@(r;hD0 

0l6X#D3X1@5i%cl0

*w]@ _R]&w e0 51Testing软件测试网 VBw+Uv

51Testing软件测试网!R aA\Kq

二、FirefoxProfile51Testing软件测试网'H'C*uXbX8l
1.要想了解selenium里面API的用法,最好先看下相关的帮助文档打开cmd窗口,51Testing软件测试网 Q*S7rn$f!J2H }A&|
输入如下信息:

"I7M\ b|051Testing软件测试网bvGQ3k5s~4Y

->python51Testing软件测试网/VE#e,y#lB
->from selenium import webdriver
+V Y| A)Xf3{0->help(webdriver.FirefoxProfile)51Testing软件测试网5B)Q'x x:Qj*q}

Jz0^x v{051Testing软件测试网;rS P b'Ne3Z

51Testing软件测试网r6@"oR.`/s

Help on class FirefoxProfile in module
1n7AbaT"|:yf0selenium.webdriver.firefox.firefox_profile:
0bv%sx\C3Z.jN0class FirefoxProfile(builtin.object)51Testing软件测试网-a8mH,_j3TQx
|  Methods defined here:

H)p\8U/X_ U/t2U051Testing软件测试网2{C:@Bb(t B gI?

|51Testing软件测试网&S M,k&le9\5j{
|  init(self, profile_directory=None)51Testing软件测试网AJ%h+g(sGu2y
|      Initialises a new instance of a Firefox Profile51Testing软件测试网-rk {7yL%OCrb
|    51Testing软件测试网8OZAtA2y
|      :args:
_+J5Rn(QrWAVN-\0|       - profile_directory: Directory of profile that you want to use.
:R]r(p;D8A#t B7T3v"w`eO0|         This defaults to None and will create a new51Testing软件测试网dt.A_n1D.f6}^
|         directory when object is created.

BB{&e'P/t0

!qqe!}4o.v4U02.翻译过来大概意思是说,这里需要profile_directory这个配置文件路径的参数
$g3W"p@LyZ3F03.profile_directory=None,如果没有路径,默认为None,启动的是一个新的,有的话就加载指定的路径。

Vl iCe8S,VP;Y1y0

ri$g/[MU{^K6OT0三、profile_directory
)PW.~6q&O)F2j L01.问题来了:Firefox的配置文件地址如何找到呢?51Testing软件测试网}J$ntaDS xH$H
2.打开Firefox点右上角设置>?(帮助)>故障排除信息>显示文件夹

R Z(}| R!g/{oP4bg.],Y&`051Testing软件测试网)`vu'?!B

51Testing软件测试网 |9W/slu

51Testing软件测试网C"tX.LSffG

3.打开后把路径复制下来就可以了:
feev W;piB0C:\Users\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default51Testing软件测试网#v}&qE)`G

51Testing软件测试网;~ T |1LDv\

]Y!Gn"F aj%iK1[2M0

(y8y]J:B_X0 51Testing软件测试网z/L#E BzEi

51Testing软件测试网S9}*E b8g

四、启动配置文件
X,eN [;WItm a01.由于文件路径存在字符:\ ,反斜杠在代码里是转义字符,这个有点代码基础的应该都知道。51Testing软件测试网 @#zri ~9^,W5F
不懂什么叫转义字符的,自己翻书补下基础吧!
,N#a x)acB02.遇到转义字符,为了不让转义,有两种处理方式:
AM7_:TF0第一种:\ (前面再加一个反斜杠)

"t0@ J`Y L;ylt0

a2U G pT ef~0第二种:r”\"(字符串前面加r,使用字符串原型)51Testing软件测试网3Tm9q#] wD5bT)o

51Testing软件测试网7L&n/Zl;_$?zQ)`.b

0b%c$I Ko#tN6E%c V n0

z i)`d&t2r.R8_0 51Testing软件测试网8ggQ_N

'O!Kcm&Rf;n)H0五、参考代码:51Testing软件测试网Jy^W6vc2fx

# coding=utf-851Testing软件测试网#h0z	lk'S7r,W
fromseleniumimportwebdriver51Testing软件测试网 Gje,J8[M)t{u7d mE"K

'Q c9b7~] Y"D&Nz {cf$`0# 配置文件地址
E}V)L2g2SMd0
profile_directory =r'C:\Users\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default'
"?%o#l"m,G'r`9W(\F0
# 加载配置配置
-]0O,P0ZEh y0`v0
profile = webdriver.FirefoxProfile(profile_directory)
K8k'M q:z @$j+C0# 启动浏览器配置
)s-bJ,@f4i Z9\;Q0
driver = webdriver.Firefox(profile)51Testing软件测试网 T!A D\0ca1lJ ]Vko
driver.quit()

e!vX1{4P Q*Q$YP$Fe]0 其实很简单,在调用浏览器的前面,多加2行代码而已,主要是要弄清楚原理。

]S `r)oQxP+g0

TAG:

 

评分:0

我来说两句

Open Toolbar