【问题标题】:Selenium WebDriverException Error when trying to save screenshot (Python 3.6)Selenium WebDriverException 尝试保存屏幕截图时出错(Python 3.6)
【发布时间】:2018-01-20 20:40:05
【问题描述】:

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

WebDriverException:未知错误:无法获得自动化扩展 来自未知错误:找不到页面:chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html

(会话信息:chrome=60.0.3112.90)

(驱动程序信息: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()

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

【问题讨论】:

  • 我不知道它在 chrome 上是如何工作的,但在 PhantomJS 中你可以这样保存它:driver.save_screenshot('name.png')
  • 谢谢,但是 save_screenshot 提供了同样的错误
  • 可能是网址错误?
  • @Nenad 不,网址是正确的。

标签: python python-3.x selenium web-scraping selenium-chromedriver


【解决方案1】:

我建议您使用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()

请注意,Python Documentation 指定确实存在更多方法(),如下所示:

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

参考

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

【讨论】:

  • 谢谢,但我在使用save_screenshot() 方法时遇到了同样的错误。
  • @splinter 你确定你能正常打开 Chrome 浏览器吗?尝试将 ChromeDriver 升级到 2.30 版,将 Selenium 升级到 3.5.0 版
  • 这很重要! . 后面必须始终有 /
猜你喜欢
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
相关资源
最近更新 更多