UI自动化测试(Python)Web-窗口截图、验证码处理方式

167 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

src=http___i.cqdj.cc_forum_201307_27_160601dupc4j8gucap6mld.gif&refer=http___i.cqdj.gif

   您好,我是游手好闲的小羊!

思考:如果自动化测试脚本运行时出现了异常,该如何定位问题?下面文章将会给出答案。

一、窗口截图

说明:把当前操作的页面,截图保存到指定位置

为什么要窗口截图?

说明:自动化脚本是由程序去执行的,因此有时候打印的错误信息并不是十分明确。如果在执行出错的时候 对当前窗口截图保存,那么通过图片就可以非常直观地看到出错的原因。

窗口截图的方法

说明:在Selenium中,提供了截图方法,我们只需要调用即可

方法:
driver.get_screenshot_as_file(imgpath)
imgpath:图片保存路径

案例练习

需求:打开‘百度’页面,完成以下操作 1). 在搜索框填写“稀土掘金”搜索信息 2). 截图保存

案例代码:

from selenium.webdriver.common.by import By

driver=webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element(By.ID,"kw").send_keys("稀土掘金")
driver.get_screenshot_as_file("img.png")
driver.quit()

拓展:
1、截图的文件名必须是以PNG结尾
2、filename中的文件目录必须手动创建

二、验证码

说明:一种随机生成的信息(数字、字母、汉字、图片、算术题)等为了防止恶意的请求行为,增加应用的 安全性。

为什么要学习验证码?

说明:在Web应用中,大部分系统在用户登录注册的时候都要求输入验证码,而我们在设计自动化测试脚本的时候, 就需要面临处理验证码的问题。

验证码的处理方式

说明:Selenium中并没有对验证码处理的方法,在这里我们介绍一下针对验证码的几种常用处理方式
方式:
1). 去掉验证码
(测试环境下-采用)
2). 设置万能验证码
(生产环境和测试环境下-采用)
3). 验证码识别技术
(通过Python-tesseract来识别图片类型验证码;识别率很难达到100%)
4). 记录cookie
(通过记录cookie进行跳过登录)

提示:

  1. 去掉验证码、设置万能验证码:都是开发来完成,我们在这里不做讲解
  2. 验证码识别技术:成功率不高,验证码种类繁多,不太适合
  3. 记录cookie:比较实用,也是我们会讲解的个内容

每天分享一点点,我是带你学习的小羊!