Skip to main content
 首页 » 编程设计

python之尝试保存屏幕截图时出现 Selenium WebDriverException 错误(Python 3.6)

2024年10月01日41del

我正在尝试使用 Selenium 和 Python 3.6(在 Windows 10 上)保存来自网站的屏幕截图。当我使用 get_screenshot_as_file() 或 get_screenshot_as_png() 函数时,我总是会遇到以下异常:

WebDriverException: unknown error: cannot get automation extension from unknown error: page could not be found: chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html

(Session info: chrome=60.0.3112.90)

(Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 6.1.7601 SP1 x86_64)

例如:

driver = webdriver.Chrome() 
ref = 'http://google.com' 
driver.get(ref) 
driver.get_screenshot_as_png() 

是否有解决方法或其他方法将整个页面另存为图像?

请您参考如下方法:

我建议您使用 save_screenshot() 方法而不是 get_screenshot_as_png() 方法。 save_screenshot() 方法将参数作为屏幕截图的名称以及逻辑/绝对路径。以下代码块导航到 URL 并将屏幕截图保存为 temp.png 在我的项目中创建的名为 Screenshots 的子目录中范围。

from selenium import webdriver 
driver = webdriver.Chrome(r'C:\Utility\BrowserDrivers\chromedriver.exe') 
ref = 'http://google.com' 
driver.get(ref) 
driver.save_screenshot('./Screenshots/temp.png') 
driver.quit() 

Note that the Python Documentation specifies that there does exists some more methods() as follows:

  1. get_screenshot_as_png() : 获取当前窗口的截图作为二进制数据。
  2. get_screenshot_as_file(filename) : 获取当前窗口的截图。
  3. get_screenshot_as_base64() : 获取当前窗口的截图为base64编码字符串

引用

您可以在 How to take screenshot with Selenium WebDriver 中找到详细的讨论