在使用selenium做自动化的时候,可以对于某些场景截图保存当时的执行情况,方便后续定位问题或者作为一些证据保留现场。
获取元素后将元素截屏
我们获取元素后,使用函数screenshot将元素截屏,参数filename传入完整的png文件名路径或者文件名(放在当前路径)。
测试代码:打开头条网站,定位到左上角的'下载头条app'然后截屏保存。
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
#打开传入的URL网页地址
driver.get("https://www.toutiao.com/")
sleep(6)
element = driver.find_element(By.XPATH,'//*[@id="root"]/div/div[3]/div[1]/div')
element.screenshot('1.png')
element.screenshot('/Users/aaa/Donwloads/1.png')
执行后打开截图如下:
将整个页面截屏
在webdriver模块中有几种截屏的方法,主要介绍如下:
1)save_screenshot(filename)
filename传入以png结尾的文件路径。
2)get_screenshot_as_file (filename)
filename传入以png结尾的文件路径。
3)还有两个方法保存的是字节码或者字符串:
使用get_screensho_as_png函数保存截屏为字节码
使用get_screensho_as_base64函数保存截屏为base64编码后的字符串
driver.get_screenshot_as_png()
driver.get_screenshot_as_base64()
示例:打开头条后,截图
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
#打开传入的URL网页地址
driver.get("https://www.toutiao.com/")
driver.maximize_window()
使用save_screenshot函数截图保存为png图片
driver.save_screenshot('toutiao1.png')
使用save_screensho_as_filet函数截图保存为png图片
driver.get_screenshot_as_file('D:/picture/toutiao2.png')
程序执行后在对应目录下可以看到头条网站整个页面的截图。
共勉: 东汉·班固《汉书·枚乘传》:"泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。"
-----指水滴不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能成就难能的功劳。
----感谢读者的阅读和学习,谢谢大家。