屏幕的截取

有时候,在测试过程中,遇到了一些关键步骤,希望通过截图的方式展现出来,或者说当怀疑可能出现问题的地方就可以通过截图,保存现场,以便于后续查看测试结果。

WebDriver提供了多个获取截图的方法,区别在于返回值的格式,例如文件格式、内存Bitmap、Base64等,根据自己的实际需求选择合适的方法:

# 获取截图,用png方式返回
get_screenshot_as_png(self)
# 获取屏幕截图,保存为文件,filename为文件路径,可以是绝对路径,也可以相对路径
get_screenshot_as_file(self, filename)
# 返回截图的base64
get_screenshot_as_base64(self)

看一个代码实例,将前面的搜索结果进行截图并保存:

from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")

# 设置窗口大小
driver.set_window_size(800, 600)
driver.find_element_by_xpath("//input[@id='kw']").send_keys("Bela")
driver.find_element_by_xpath("//input[@id='su']").click()
sleep(3)

driver.get_screenshot_as_file("d:\\baidu.png")

运行以上代码,结束后,可以到D盘找到保存的baidu.png了,结果:

如上就是一张大图了,细心的同学也能够发现截图不一样的地方,当设置浏览器大小为(800,600)的时候,是有滚动条的,也就是整个页面没有展示出来,但实际截图结果,整个页面都展示出来了!这就是截图的特点,截图其实不是当前窗口的大小,而是整个HTML页面的大小!

IT赶路人

专注IT知识分享