截图
今天来学习一下selenium的截图,截图有什么作用呢;截图一般情况是遇到了错误,需要截图反馈到研发;或者是先截一张原始图,后续回归对比的时候,看看有没有哪个地方不一样,变化了的;
selenium目前支持了以下四种截图方式
- save_screenshot(filename);获取当前屏幕截图并保存为指定文件
- get_screenhot_as_base64();获取当前屏幕截图base64编码字符串
- get_screenhot_as_file(filename);获取当前的屏幕截图,使用完整的路径
- get_screenhot_as_png();获取当前屏幕截图的二进制文件数据
话不多说,让我们实践以下就知道怎么个用法了
save_screenshot(filename)
save_screenshot支持一个filename的传参,查看源码可以看得出来,截图后缀为png;
filename支持携带路径,可以是相对路径,也可以是绝对路径;
需要注意的是,如果对应文件夹不存在,则无法保存;具体效果如下
保存成功则返回True、没成功则返回错误False- import time
- from selenium import webdriver
- from selenium.webdriver.chrome.service import Service
- from selenium.webdriver.common.by import By
- serve_path = r'D:\Code_Study\driver\chromedriver-win64\chromedriver.exe'
- service = Service(serve_path)
- browser = webdriver.Chrome(service=service)
- browser.get("https://www.baidu.com")
- browser.find_element(By.ID, "kw").send_keys("selenium")
- browser.find_element(By.ID, "su").click()
- time.sleep(5)
- # save_screenshot(filename);获取当前屏幕截图并保存为指定文件
- # 在当前目录
- browser.save_screenshot("selenium.png")
- # 需要注意的是,如果对应文件夹不存在,则无法保存;
- # 还支持携带路径参数,绝对路径
- browser.save_screenshot(r"D:\Code_Study\Python_Selenium\pic\selenium.png")
- # 相对路径
- browser.save_screenshot(r"..\pic\selenium.png")
- browser.quit()
复制代码 get_screenhot_as_base64()
- screenshot_base64 = browser.get_screenshot_as_base64()
- print(screenshot_base64)
复制代码 get_screenhot_as_file(filename)
保存成功则返回True、没成功则返回错误False- browser.get_screenshot_as_file("selenium.png")
- # # 需要注意的是,如果对应文件夹不存在,则无法保存;
- # # 还支持携带路径参数,绝对路径
- browser.get_screenshot_as_file(r"D:\Code_Study\Python_Selenium\pic\selenium.png")
- # # 相对路径
- browser.get_screenshot_as_file(r"..\pic\selenium.png")
复制代码 get_screenhot_as_png()
- screenshot_data = browser.get_screenshot_as_png()
- print(screenshot_data)
- # 可以使用二进制数据写入文件
- with open("screenshot.png", "wb") as f:
- f.write(screenshot_data)
复制代码 经过上面的实践,发现get_screenhot_as_file和save_screenshot这两个作用一样,后面相对于前面比较新,推荐使用后者
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |