(轉載)Selenium + Chrome headless 報ERROR:gpu_process_transport_factory.cc(1007)]

Selenium不再推薦使用PhantomJS,會報如下警告

UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '

於是從PhantomJS轉移到Chrome,使用headless versions of Chrome時,首先要安裝Chrome,然後下載chromedriver,再把chromedriver的地址配置到系統環境變量path中,方便調用。如果不把chromedriver的地址配置到系統環境變量的話,也可以在使用時指定chromedriver的地址。

注意Chrome和chromedriver有版本對應的要求,系統中安裝了某一版本的chrome要使用對應版本的chromedriver,其實下載最新版本的Chrome和chromedriver就行了,一般都是對應的。

Chrome下載地址:https://chrome.en.softonic.com/

chromedriver下載地址:http://npm.taobao.org/mirrors/chromedriver/

 

不過在使用過程中,還是不如PhantomJS順手,在windows環境下,chrome還有點問題。比如啓動chromedriver的時候,會報個錯。

複製代碼
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# webdriver.Chrome函數裏有個參數executable_path,默認值是'chromedriver.exe',會搜索系統path變更,也可以修改該值,使用其他路徑
# driver = webdriver.Chrome(executable_path=my_driver_path,chrome_options=chrome_options)
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("https://www.baidu.com/")
複製代碼

[0917/002914.533:ERROR:gpu_process_transport_factory.cc(1007)] Lost UI shared context.

雖然最終沒有影響程序執行,但還是費了很大勁去查了一下,原因是在windows系統中Chrome無頭模式下,其中的SwiftShader軟件會觸發斷言失敗,但實際上不影響程序執行,可以忽略該錯誤。

https://stackoverflow.com/questions/50143413/errorgpu-process-transport-factory-cc1007-lost-ui-shared-context-while-ini

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章