用Python中的Selenium进行屏幕截图

我们可以用Python脚本在自动网络浏览器上执行任务,selenium 。我们可以用不同的方法将浏览器的屏幕截图。

本教程将演示如何在Python中使用selenium 来捕获自动浏览器的屏幕截图。

使用save_screenshot() 函数在Python中使用selenium 来捕获屏幕截图

selenium 包提供了save_screenshot() 函数,可以对自动浏览器中打开的网页进行截图。

我们可以在函数中指定屏幕截图的文件名(PNG格式)和路径。这个函数是和webdriver 对象一起使用的。

请看下面的代码。

from selenium import webdriver
driver = webdriver.Chrome(r'C:/driverpath/chromedriver.exe')
driver.get("https://www.delftstack.com/")
driver.save_screenshot("filename.png")

在上面的例子中,我们创建了一个webdriver 对象,并用get() 函数创建了一个与所需URL的连接。然后,使用save_screenshot() 函数来捕获屏幕截图并保存它。

在Python中使用get_screenshot_as_file() 函数来捕获屏幕截图,使用selenium

get_screenshot_as_file() 函数也用webdriver 对象的屏幕截图创建一个文件。我们可以通过在函数中提到它,将文件保存在它所需要的路径上。

如果文件被成功创建,它将返回True 。如果有任何异常,该函数将返回False

比如说:

from selenium import webdriver
driver = webdriver.Chrome(r'C:/driverpath/chromedriver.exe')
driver.get("https://www.delftstack.com/")
driver.get_screenshot_as_file("filename1.png")

使用Screenshot-Selenium 包在Python中使用selenium 来捕获屏幕截图

Selenium-Screenshot 包可以用来捕获webdriver 的HTML元素的屏幕截图。

这个包与Python 3兼容,可以使用pip install Selenium-Screenshot 来安装。我们也可以用它来单独捕捉HTML元素的剪影。

我们可以使用full_screenshot() 函数来捕获整个浏览器窗口。我们需要先创建一个Screenshot 类的对象来使用它。

webdriver 对象和文件名是在full_screenshot() 函数中指定的。

见下面的代码。

from selenium import webdriver
from Screenshot import Screenshot_Clipping
s = Screenshot_Clipping.Screenshot()
driver = webdriver.Chrome(r'C:/driverpath/chromedriver.exe')
driver.get("https://www.delftstack.com/")
s.full_Screenshot(driver, save_path=r'.' , image_name='name.png')

我们在上面的例子中使用full_screenshot() 函数来捕获屏幕截图。我们用image_name 参数和save_path 参数提供文件的名称和路径。

总结

我们讨论了如何在Python中使用selenium 进行屏幕截图。我们可以使用save_screenshot()get_screenshot_as_file() 函数将屏幕截图保存为PNG文件。

另外,我们也可以安装一个叫做Selenium-Screenshot 的子包,用它来捕捉浏览器上的网页。