selenium截图的方法
1、首先我线放一个简单的访问百度之后截图的代码,大家可以复制代码之后去运行一下,注意复制到编辑器中的空格问题之类的。
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
#driver= webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
sleep(5)
# 截取当前窗口,并指定截图图片的保存位置
driver.get_screenshot_as_file("D:\\selenium_img.png")
sleep(5)
driver.quit()
2、在上面这个代码运行之后,会自动访问百度,然后搜索selenium,然后截下浏览器的当前状态图片(下图为再电脑目录中的位置和上述代码的截图)
3、在使用上述这个代码的时候,我们有时候需要将文件名命名为中文,这个时候,我们可能需要注意一些问题,需要将字符串的文件名前面加上一个u。
例如由:
driver.get_screenshot_as_file("D:\\这是截图selenium_img.png")
改为
driver.get_screenshot_as_file(u"D:\\这是截图selenium_img.png")
注意:有时候不加也是可以的,但是最好加上
1、在这个测试中,一般是要生成报告的,所以也就必定将生成html,而有时候我们需求就是要将截图放在HTML中,这里我就给大家说一下。
2、这里我们可以将截图的方法封装为一个方法,将文件名作为一个参数
附上代码:(注意空格)
def save_img(self, img_name):
#传入一个img_name, 并存储到默认的文件路径下
self.driver.get_screenshot_as_file('{}/{}.png'.format(os.path.abspath(self.img_path), img_name))
3、然后再在需要截图的地方调用该方法,然后在测试用例上使用@BeautifulReport.add_test_img(“图片名”)将图片加入到测试报告中
由于截的图是公司的东西,所以不在这展示在报告中的截图了(但保证能成功)