我正在尝试使用 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 Documentationspecifies that there does exists some more methods() as follows:
get_screenshot_as_png(): 获取当前窗口的截图作为二进制数据。get_screenshot_as_file(filename): 获取当前窗口的截图。get_screenshot_as_base64(): 获取当前窗口的截图为base64编码字符串
引用
您可以在 How to take screenshot with Selenium WebDriver 中找到详细的讨论
