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")

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

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

每天进步一点点,加油!

相关推荐
tiger从容淡定是人生10 小时前
Selenium与Playwright:两大Web自动化框架的深入对比
前端·selenium·测试工具·自动化·web测试·playwright·信息化战略
Johnstons11 小时前
抓包工具怎么选:Wireshark、tcpdump 与流量回溯平台的边界、场景与排障判断标准
测试工具·数据分析·wireshark·es·tcpdump·抓包工具选型与流量回溯
紫青宝剑21 小时前
Vegeta 工具
测试工具
川石课堂软件测试1 天前
技术分享|JMeter接口与性能测试实战
数据库·功能测试·测试工具·jmeter·单元测试·postman·prometheus
daopuyun1 天前
消费型物联网产品信息安全测试工具分享(基于ETSI EN 303 645)
物联网·测试工具
Word码1 天前
QQ音乐自动化测试实战指南
python·功能测试·测试工具·pycharm·集成测试
其实防守也摸鱼2 天前
sqlmap下载和安装保姆级教程(附安装包)
linux·运维·服务器·测试工具·渗透测试·攻防·护网行动
介一安全2 天前
JADX与AI结合的实操指南:从工具配置到APK分析
人工智能·测试工具·安全性测试·jadx
AALoveTouch3 天前
某麦网抢票:基于Wireshark协议分析
网络·测试工具·wireshark
x***r1513 天前
Wireshark-4.4.2-x64安装步骤详解(附网络抓包与分析入门教程)
网络·测试工具·wireshark