一、截图
说明:把当前操作页面、截图保存到指定位置
1、为什么要窗口截图
说明:自动化脚本是由程序去执行的,因此也有时候打印的错误信息并不是十分明确。如果在执行出错的时候对当前窗口截图保存,那么通过图片就可以非常直观地看到出错的原因
2、窗口截图
说明:在WebDriver类库中,提供了截图方法,我们只需要调用即可:
方法:(1)get_screenshot_as_file(imgpath) 截取当前窗口
(imgpath:图片保存路径)
3、截图代码实现
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get(r'G:\python\day1\source\注册实例.html')
sleep(2)
driver.switch_to.frame('myframe1')
driver.find_element_by_id('userA').send_keys('admin')
driver.get_screenshot_as_file("../Image/image01.jpg")
sleep(3)
driver.quit()
二、验证码
1、验证码的处理方式
说明:WebDriver类库中没有对验证码处理的方法,但是在这里可以叙说下针对验证码的几种常用处理方式
(1)去掉验证码 (测试环境下——采用)
(2)设置万能验证码 (生产环境——采用)
(3)验证码识别技术
(4)记录cookie (通过记录cookie进行登录——推荐)
提示:
1、去掉验证码、设置万能验证码,由开发来完成
2、验证码识别技术,成功率不高,验证码种类繁多,不太适合
3、记录cookie,比较实用
三、cookie
1、cookie是什么?
cookie:
(1)cookie是一小段的文本信息,格式:python中的字典(键值对形式)
(2)cookie产生,客户端请求服务端,如果服务端需要记录该用户状态,就向客户端浏览器激发一个cookie格式
(3)cookie使用:当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器,服务器检查该cookie,以此来辨认用户状态
2、为什么记录cookie?
(1)用户第一次登录时,勾选下次直接登录或者记住密码,就是采用记录cookie实现的
(2)cookie内记录用户名和密码(加密)信息,只要请求是服务器收到cookie,就是别成功,默认为已登录
(3)记录cookie
3、cookie实现
说明:WebDriver中对cookie操作提供相应的方法
方法:
(1)get_cookie(name) 获取指定的cookie
(2)get_cookies() 获取本网站所有cookies
(3)add_cookie(str) 添加cookie (str:为python中的字典形式)
4、模拟登陆代码
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get('https://www.baidu.com')
#首次登录保存cookie值,value根据实际填写
driver.add_cookie({'name':'BAIDUID','value':'E88F11332D748EBF362DCBB4075084F9:FG=1'})
driver.add_cookie({'name':'BDUSS','value':'RLV3Zld1lZamIxTS1mUHdmY1E2d2F-VnIzWX5QVDY5MlU1QTNSc0wwVEVObDVjQVFBQUFBJCQAAAAAAAAAAAEAAAClFd1ms~XH5zk5OTMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMSpNlzEqTZcej'})
sleep(3)
driver.refresh()
driver.quit()