A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【郑州校区】窗口截图、验证码处理
目标
1. 掌握窗口截图方法
2. 熟悉验证码处理的方式
思考:如果自动化测试脚本运行时出现了异常,该如何定位问题?
1. 窗口截图
说明:把当前操作的页面,截图保存到指定位置
1.1 为什么要窗口截图?
自动化脚本是由程序去执行的,因此有时候打印的错误信息并不是十分明确。如果在执行出错的时候     对当前窗口截图保存,那么通过图片就可以非常直观地看到出错的原因。
1.1 窗口截图的方法
说明:在Selenium中,提供了截图方法,我们只需要调用即可

方法:
driver.get_screenshot_as_file(imgpath)
imgpath:图片保存路径
1.1 案例
需求:打开‘注册A.html’页面,完成以下操作
1). 填写注册信息
2). 截图保存
1.1 示例代码
driver.find_element_by_id("userA").send_keys("admin")
driver.get_screenshot_as_file("./img/img01.jpg")
1. 验证码
说明:一种随机生成的信息(数字、字母、汉字、图片、算术题)等为了防止恶意的请求行为,增加应用的      安全性。
为什么要学习验证码?
在Web应用中,大部分系统在用户登录注册的时候都要求输入验证码,而我们在设计自动化测试脚本的时候,     就需要面临处理验证码的问题。
1.1 验证码的处理方式
说明:Selenium中并没有对验证码处理的方法,在这里我们介绍一下针对验证码的几种常用处理方式

方式:
1). 去掉验证码
(测试环境下-采用)
2). 设置万能验证码
(生产环境和测试环境下-采用)
3). 验证码识别技术
(通过Python-tesseract来识别图片类型验证码;识别率很难达到100%)
4). 记录cookie
(通过记录cookie进行跳过登录)
提示
1. 去掉验证码、设置万能验证码:都是开发来完成,我们在这里不做讲解
2. 验证码识别技术:成功率不高,验证码种类繁多,不太适合
3. 记录cookie:比较实用,我们对它进行下讲解
1. cookie
cookie是什么?
1. Cookie是由Web服务器生成的,并且保存在用户浏览器上的小文本文件,它可以包含用户相关的信息。
2. Cookie数据格式:键值对组成(python中的字典)
3. Cookie产生:客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie
数据
4. Cookie使用:当浏览器再次请求该网站时,浏览器把请求的数据和Cookie数据一同提交给服务器,服务器检
查该Cookie,以此来辨认用户状态。
1.1 cookie的应用场景
1. 实现会话跟踪,记录用户登录状态
2. 实现记住密码和自动登录的功能
3. 用户未登录的状态下,记录购物车中的商品
1. Selenium操作cookie
1.1 案例
需求:使用cookie实现跳过登录
1). 手动登录百度,获取cookie
2). 使用获取到的cookie,达到登录目的,然后就可以执行登录之后的操作
案例实现步骤分析
BDUSS是登录百度后的唯一身份凭证(*.baidu.com),拿到BDUSS就等于拿到帐号的控制权,通行贴吧、知道、百科、文库、空间、百度云等百度主要产品。

1. 登录baidu,登录成功后抓取  (BDUSS)
2. 使用add_cookie()方法,添加  (BDUSS)键和值
3. 调用刷新方法  driver.refresh()
1.1 示例代码
[AppleScript] 纯文本查看 复制代码
rom  selenium  import  webdriver import  time

driver  =  webdriver.Firefox() driver.get("https://www.baidu.com")

driver.add_cookie({'name':'BDUSS','value':'根据实际填写'})

time.sleep(3) driver.refresh() time.sleep(3) driver.quit()
1. 窗口截图、验证码总结
1. 窗口截图的方法?
2. 验证码常用的处理方式?
3. Selenium操作cookie的方法?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马