找回密码
 立即注册
首页 业界区 科技 selenium之截图

selenium之截图

蓝娅萍 2025-6-7 16:10:51
截图

今天来学习一下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
  1. import time
  2. from selenium import webdriver
  3. from selenium.webdriver.chrome.service import Service
  4. from selenium.webdriver.common.by import By
  5. serve_path = r'D:\Code_Study\driver\chromedriver-win64\chromedriver.exe'
  6. service = Service(serve_path)
  7. browser = webdriver.Chrome(service=service)
  8. browser.get("https://www.baidu.com")
  9. browser.find_element(By.ID, "kw").send_keys("selenium")
  10. browser.find_element(By.ID, "su").click()
  11. time.sleep(5)
  12. # save_screenshot(filename);获取当前屏幕截图并保存为指定文件
  13. # 在当前目录
  14. browser.save_screenshot("selenium.png")
  15. # 需要注意的是,如果对应文件夹不存在,则无法保存;
  16. # 还支持携带路径参数,绝对路径
  17. browser.save_screenshot(r"D:\Code_Study\Python_Selenium\pic\selenium.png")
  18. # 相对路径
  19. browser.save_screenshot(r"..\pic\selenium.png")
  20. browser.quit()
复制代码
get_screenhot_as_base64()
  1. screenshot_base64 = browser.get_screenshot_as_base64()
  2. print(screenshot_base64)
复制代码
get_screenhot_as_file(filename)

保存成功则返回True、没成功则返回错误False
  1. browser.get_screenshot_as_file("selenium.png")
  2. # # 需要注意的是,如果对应文件夹不存在,则无法保存;
  3. # # 还支持携带路径参数,绝对路径
  4. browser.get_screenshot_as_file(r"D:\Code_Study\Python_Selenium\pic\selenium.png")
  5. # # 相对路径
  6. browser.get_screenshot_as_file(r"..\pic\selenium.png")
复制代码
get_screenhot_as_png()
  1. screenshot_data  = browser.get_screenshot_as_png()
  2. print(screenshot_data)
  3. # 可以使用二进制数据写入文件
  4. with open("screenshot.png", "wb") as f:
  5.     f.write(screenshot_data)
复制代码
经过上面的实践,发现get_screenhot_as_file和save_screenshot这两个作用一样,后面相对于前面比较新,推荐使用后者

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册