98世界杯主题曲_世界杯4强 - dajimy.com

截图

今天来学习一下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这两个作用一样,后面相对于前面比较新,推荐使用后者