Selenium + Python 自动化测试08(截图)

我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。

上一篇我们讨论了滑块的操作方法,本篇文章我们讲述一下截图的操作方法。希望能够帮到爱学的小伙伴。

在实际的测试项目组中我们经常要截屏保存报错信息,以便后续人工确认是否是真的bug。和对应的日志相对应。有时登录或者注册有图片上的验证码需要验证,也需要截图验证码,然后分析识别图片上的文字。

1、截屏的方法

页面截屏比较简单,可以使用selenium自带的方法:save_screenshot

下面以免费Swag Labs的网址(https://www.saucedemo.com/)为例进行说明:

练习代码如下:

复制代码
#打开浏览器,并最大化

driver.get("https://www.saucedemo.com/")   #打开练手的网站

driver.maximize_window()

time.sleep(3)

now =time.strftime("%Y-%m-%d %H_%M_%S")

pictures=now+".png"

driver.save_screenshot(pictures)

运行脚本以后可以看到产生对应的图片,在这个项目的文件夹下。

图片为了不重复命名,这里用了日期+时间的方法。

2、元素的截图

验证码如果要用图像识别的方式去处理的话,需要先对验证码元素进行截图。

如下例子:

前面是上一节滑块的内容,黄色是这次新增:

复制代码
driver.get("https://passport.ctrip.com/user/reg/home")

driver.maximize_window()

time.sleep(3)

# 点击同意并继续

driver.find_element_by_xpath("//*[@id='agr_pop']/div[3]/a[2]").click()

# 滑块的元素

slider =driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-drop-btn")

print(slider.size['width'])

print(slider.size['height'])

# 滑块区域的元素

slide_range =driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-bg-bar")

print(slide_range.size['width'])

print(slide_range.size['height'])



# 拖动滑块

ActionChains(driver).drag_and_drop_by_offset(slider, slide_range.size['width'], -slider.size['height']

                                             ).perform()

print("滑动成功")

time.sleep(3)

now =time.strftime("%Y-%m-%d %H_%M_%S")

pictures =now +".png"
复制代码
driver.save_screenshot(pictures)

# 元素的位置

captcha_image =driver.find_element_by_class_name("cpt-small-img")



# 获取元素的位置和大小

left =captcha_image.location['x']

top =captcha_image.location['y']

right =left +captcha_image.size["width"]

bottom =top+captcha_image.size["width"]

# 截取屏幕截图

im =Image.open(pictures)

im =im.crop((left,top,right,bottom))

im.save("captcha.png")

运行脚本查看文件夹下有对应的截图:

好了,今天就分享到这里。

每天进步一点点,加油!

相关推荐
PhotonixBay5 分钟前
共聚焦显微镜测量铜导体表面粗糙度
测试工具·制造
糖果店的幽灵5 小时前
AI 驱动 Selenium 测试框架最佳实践:从传统自动化到智能体测试
人工智能·selenium·自动化
cfm_29147 小时前
JVM垃圾收集算法与收集器深度解析
jvm·测试工具·算法·性能优化
Luminbox紫创测控8 小时前
金属卤素灯工作原理与汽车零部件老化测试应用
测试工具·汽车·安全性测试·测试标准
Maydaycxc10 小时前
Python 实现 RPA + AI 自动化:大模型 OCR + 网页操作完整源码实战
人工智能·python·opencv·selenium·自动化·ocr·rpa
赵大大宝10 小时前
Selenium 从入门到精通:自动化测试与爬虫实战全攻略
爬虫·selenium·测试工具
zhonghaoxincekj10 小时前
基于 168MHz MCU 的直流继电器全参数自动化测试方案解析
经验分享·功能测试·科技·学习·测试工具·创业创新·制造
带土11 天前
5. 网络体系架构与WireShark简单使用
网络·测试工具·wireshark
kiss strong1 天前
自制请求工具request-ui
测试工具
蒲公英内测分发1 天前
在灵感与输出之间挣扎:我与 Typeoff 的交集
测试工具·产品运营·项目管理·语音输入