2

我试图用Python 3.6(在Windows 10上)使用Selenium来保存截图。当我使用get_screenshot_as_file()get_screenshot_as_png()功能,我总是得到以下异常:Selenium WebDriverException尝试保存截图时出错(Python 3.6)

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() 

有一种解决方法,或者另一种方式来将整个页面保存为图片?

+0

我不知道它是如何工作的Chrome,但在PhantomJS您保存这样的:driver.save_screenshot('名称。 PNG') – Nenad

+0

谢谢,但save_screenshot提供了相同的错误 – splinter

+0

也许URL是错误的? – Nenad

回答

1

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

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编码字符串
+0

谢谢,但使用'save_screenshot()'方法时出现同样的错误。 – splinter

+1

@splinter您确定您可以打开一般的Chrome浏览器吗?尝试将ChromeDriver升级到版本2.30和Selenium到版本3.5.0 – DebanjanB

相关问题