第 1 章webdriver
环境搭建好了,我们正式学习 selenium 的 webdriver 框架,它不像 QTP 之类的有 GUI 界面的可视化工具,是webdriver 框架的 API。
2.1.1 打开网页
注解:我们用谷歌浏览器
# from selenium import webdriver #导入一个selenium 库中导入webdriver模块
'''
在Python中做UI自动化:selenium'''
# 创建一个drvier对象用来调用打开浏览器,对浏览器实现操作
# driver =webdriver.Chrome() #主讲谷歌浏览器
#driver =webdriver.Ie()
#driver =webdriver.firefox()
'''通过调用webdrvier.来引用对应的浏览器,生成一个浏览器对象
注意事项:webdrvier. 点后面的浏览器名称不要自己输入用联想
还有自己添加一个英文的小括号() 小括号的作用是:把它声明成为
一个匿名对象 那么当前的drvier就是一个浏览器驱动对象,可以用它来
对对应的浏览器实现操作的动作'''
# UI自动化所有的调用都必须在最前面加上一个drvier对象
# 通过对象来打开谷歌浏览器且输入网址
# driver.get('http://www.baidu.com')
# 通过对象调用get方法来打开一个网站URL
2.1.2 设置休眠
time.sleep(2)
- 由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作
- 导入 time 模块,time 模块是 Python 自带的,所以无需下载
设置等待时间,单位是秒(s),时间值可以是小数也可以是整数
1.强制等待 sleep(xx)
2.隐性等待 implicitly_wait(xx)
3.显性等待 WebDriverWait
2.1.3 页面刷新
driver.refresh()
- 有时候页面操作后,数据可能没及时同步,需要重新刷新
这里可以模拟刷新页面操作,相当于浏览器输入框后面的刷新按钮
from selenium import webdriver import time #时间模块 sleep()线程等待 driver =webdriver.Chrome() # driver.get('http://www.baidu.com') #直接打开 url ='http://www.baidu.com' driver.maximize_window() driver.get(url) #通过引用变量来进入百度 time.sleep(2) # '''用处:让元素定位更加的准确''' driver.get('http://gz.duoceshi.cn') driver.maximize_window() #窗口实现最大化显示100% time.sleep(2) driver.back()
2.1.4 页面切换
返回和切换
driver.back() #返回上一页
driver.forward() #切换到下一页
- 当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮
- 返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮
from selenium import webdriver import time #时间模块 sleep()线程等待 driver =webdriver.Chrome() # driver.get('http://www.baidu.com') #直接打开 url ='http://www.baidu.com' driver.maximize_window() driver.get(url) #通过引用变量来进入百度 time.sleep(2) # '''用处:让元素定位更加的准确''' driver.get('http://gz.duoceshi.cn') driver.maximize_window() #窗口实现最大化显示100% time.sleep(2) driver.back() time.sleep(2) driver.forward()
切换窗口
切换窗口代码
from selenium import webdriver import time #时间模块 sleep()线程等待 driver =webdriver.Chrome() driver.get('http://gz.duoceshi.cn')#打开第一个网址 driver.maximize_window()#最大化 time.sleep(3) window='window.open("http://www.jd.com")'#通过变量来接收 driver.execute_script(window)#执行脚本
2.1.5 设置窗口大小
- 可以设置浏览器窗口大小,如设置窗口大小为手机分辨率 540*960
2、窗口最大化窗口
格式:
def set_window_size(self, width, height, windowHandle='current'):
windowHandle当前句柄,windowHandle当前
from selenium import webdriver import time #时间模块 sleep()线程等待 driver =webdriver.Chrome() driver.get('http://gz.duoceshi.cn') driver.set_window_size(200,200) time.sleep(2) driver.close()
最大化代码:
from selenium import webdriver import time #时间模块 sleep()线程等待 driver =webdriver.Chrome() driver.get('http://gz.duoceshi.cn') driver.maximize_window()
2.1.6 截屏
driver.get_screenshot_as_file(保存路径+图片名称)
- 打开网站之后,也可以对屏幕截屏
- 截屏后设置制定的保存路径+文件名称+后缀
截屏代码:
from selenium import webdriver import time #时间模块 sleep()线程等待 driver =webdriver.Chrome() driver.get('http://gz.duoceshi.cn') driver.maximize_window() time.sleep(2) driver.get_screenshot_as_file(r'D:\bao\pp.png')
2.1.7 退出
- 退出有两种方式,一种是 close;另外一种是 quit
- close 用于关闭当前窗口,当打开的窗口较多时,就可以用 close 关闭部分窗口
- quit 用于结束进程,关闭所有的窗口
3、最后结束测试,要用 quit,quit 可以回收 c 盘的临时文件
quit代码:
from selenium import webdriver import time #时间模块 sleep()线程等待 driver =webdriver.Chrome() driver.get('http://gz.duoceshi.cn') driver.maximize_window() time.sleep(2) driver.quit()
close代码:
from selenium import webdriver import time #时间模块 sleep()线程等待 driver =webdriver.Chrome() driver.get('http://gz.duoceshi.cn') driver.maximize_window() time.sleep(2) driver.close()