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

Selenium再也不推薦使用PhantomJS,會報以下警告web

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 'chrome

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

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

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

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

 

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

複製代碼
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.spa

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

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

相關文章
相關標籤/搜索