2.1 操作元素基本方法
上一篇 / 下一篇 2018-06-12 10:34:59 / 个人分类:Python+Selenium2 WebDriver API
2.1 操作元素基本方法
51Testing软件测试网 qc5E$uU6g`1Ga^S前言51Testing软件测试网S1U|+DT6p`(q
前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架。我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API。
f8j:rqE|I7rIo#U0本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开、前进、后退、刷新、设置窗口大小、截屏、退出等操作。51Testing软件测试网%@&_w-rg
U6x|+f
2.1.1 打开网页
51Testing软件测试网Tq$WF|)K1c)oQw1.从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'UlX02.1.2 设置休眠
51Testing软件测试网H#q }2r/R-q!E!G$Y1.由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作51Testing软件测试网(ih)TK6}4N
2.导入time模块,time模块是Python自带的,所以无需下载51Testing软件测试网X*QZJ
~w
3.设置等待时间,单位是秒(s),时间值可以是小数也可以是整数51Testing软件测试网A`1Y)if0q]
51Testing软件测试网0VH O{ N
2.1.3 页面刷新
A-PT5X8l:L%Gl"r01.有时候页面操作后,数据可能没及时同步,需要重新刷新51Testing软件测试网b/IW}`-Brs
2.这里可以模拟刷新页面操作,相当于浏览器输入框后面的刷新按钮
2.1.4 页面切换
#X}#d4O9]01.当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮。
"b.F_/]8g2A/I051Testing软件测试网 uo,q6sy!Bv2.返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮。
$_*T r.He/Auo,^"R051Testing软件测试网w0uV,lx}5P#Wt I51Testing软件测试网BJ#~ zzQ1l/^ ZW
2.1.5 设置窗口大小
51Testing软件测试网!U!e\5V.y&Y*K6D1.可以设置浏览器窗口大小,如设置窗口大小为手机分辨率540*960
3_7q S,RHs
U[&W$g02.也可以最大化窗口51Testing软件测试网.l+I.DJr/Q
51Testing软件测试网[ NZ:Q~%j
2.1.6 截屏
J%^-V(B*D!JLTV`^01. 打开网站之后,也可以对屏幕截屏51Testing软件测试网I;Lt4rN7?4J-I
2.截屏后设置指定的保存路径+文件名称+后缀
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软件测试网 N h5GJp:rh"W
J^6s j!eolF0掌握了浏览器的基本操作后,接下来就可以开始学习元素定位了,元素定位需要有一定的html基础。没有基础的可以按下浏览器的F12快捷键先看下html的布局,先了解一些就可以了。
:_(p:Ko XHE:^/iqG02.1.8 加载浏览器配置
g)B2XO;T,o{{_+X-c0启动浏览器后,发现右上角安装的插件不见了,这是因为webdriver启动浏览器时候,是开的一个虚拟线程,跟手工点开是有区别的,selenium的一切操作都是模拟人工(不完全等于人工操作)。
gKm8{,I d]4RU051Testing软件测试网"I-XI#vReQQ C加载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里面其实提供了对应的方法去打开,只是很少有人用到。
51Testing软件测试网o1[)s.fI
@R,m!a@(r;hD0
0l6X#D3X1@5i%cl0*w] @ _R]&we0 51Testing软件测试网VBw+Uv
51Testing软件测试网!RaA\Kq二、FirefoxProfile51Testing软件测试网'H'C*uX bX8l
1.要想了解selenium里面API的用法,最好先看下相关的帮助文档打开cmd窗口,51Testing软件测试网
Q*S7rn$f!J2H
}A&|
输入如下信息:
->python51Testing软件测试网/VE#e,y#lB
->from selenium import webdriver
+V Y| A)Xf3{0->help(webdriver.FirefoxProfile)51Testing软件测试网5B)Q'x
x:Qj*q}
J z0^x v{051Testing软件测试网;rS P b'Ne3Z
51Testing软件测试网r6@"oR.`/sHelp on class FirefoxProfile in module
1n7AbaT"|:yf0selenium.webdriver.firefox.firefox_profile:
0bv%sx\C3Z.jN0class FirefoxProfile(builtin.object)51Testing软件测试网-a8mH,_j3TQ x
| Methods defined here:
|51Testing软件测试网&SM,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.
!qqe!}4o.v4U02.翻译过来大概意思是说,这里需要profile_directory这个配置文件路径的参数
$g3W"p@LyZ3F03.profile_directory=None,如果没有路径,默认为None,启动的是一个新的,有的话就加载指定的路径。
ri$g/[MU{^K6OT0三、profile_directory
)PW.~6q&O)F2j
L01.问题来了:Firefox的配置文件地址如何找到呢?51Testing软件测试网} J$n taDS
xH$H
2.打开Firefox点右上角设置>?(帮助)>故障排除信息>显示文件夹
51Testing软件测试网|9W/slu
51Testing软件测试网C"tX.LSffG3.打开后把路径复制下来就可以了:
feevW;piB0C:\Users\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default51Testing软件测试网#v}&qE)`G
(y8y]J:B_X0 51Testing软件测试网z/L#E BzEi
51Testing软件测试网S9}*Eb8g四、启动配置文件