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

相關問題