这篇文章介绍如何利用Selenium的方法进行截图,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图。在selenium for Python中主要有三个截图方法,我们挑选其中最常用的一种。
截图技能对于测试人员来说应该是较为重要的一个技能。
在自动化测试中,截图可以帮助我们直观的定位错误、记录测试步骤。
记得以前在给某跨国银行做自动化项目的时候,某银的PM要求我们自动化测试的每一步至少需要1个截图,以证明每个功能都被自动化测试给覆盖过,在这种情况下截图就成了证明自动化测试有效性的重要手段。
好的测试人员都会截得一手好图,就跟骨灰级宅男定会吟得一手好诗一般。
webdriver的截图功能十分强悍。以前在截图的时候,最麻烦的问题莫过于页面太长而只能截到一屏,屏幕以外需要移动滚动条才能看到的区域一般是截不到的。现在webdriver解决了这个问题,无论页面有多长,webdriver都能比较完美的截到完整的页面。
下面的代码演示了如何使用webdriver进行截图:
# -*- coding: utf-8 -*- from selenium import webdriver import unittest import os,sys,time import HTMLTestReport #登录 driver =webdriver.Firefox() current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) current_time1 = time.strftime("%Y-%m-%d", time.localtime(time.time())) print(current_time ) print(current_time1 ) # 必须打印图片路径HTMLTestRunner才能捕获并且生成路径,\image\**\\**.png 是获取路径的条件,必须这样的目录 #设置存储图片路径,测试结果图片可以按照每天进行区分 #通过if进行断言判断 driver.get("https://baidu.com/") #新创建路径“.”表示当前整个.py文件的路径所在的位置,“\\”路径分割符,其中的一个是“\”表示转义字符 pic_path = '.\\result\\image\\' + current_time1+'\\' + current_time +'.png' print(pic_path) time.sleep(5) print(driver.title) #截取当前url页面的图片,并将截取的图片保存在指定的路径下面(pic_path),注:以下两种方法都可以 driver.save_screenshot(pic_path) driver.save_screenshot('.\\result\\image\\' + current_time1+'\\' + current_time +'.png') if u'百度一下,你就知道' == driver.title: print ('Assertion test pass.') else: print ('Assertion test fail.') #通过try抛出异常进行断言判断 driver.get("https://baidu.com/") driver.save_screenshot(pic_path) try: assert u'百度一下,你就知道' == driver.title print ('Assertion test pass.') except Exception as e: print ('Assertion test fail.', format(e)) time.sleep(5) driver.quit()
save_screenshot方法实现了截图功能,只需要传入保存截图的文件名就可以了,十分方便。
总结
以上所述是小编给大家介绍的Python+selenium实现截图图片并保存截取的图片,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。