前提・実現したいこと
ChromeDriverをChromeDriverManagerで自動でダウンロードし、seleniumをブラウザを開いたまま実行したいのですが、headlessモードでは問題なく実行でき、headless otptionをはずすとエラーとなります。
この原因についてご教示をお願いいたします。
なお、headlessモードにしたい理由としては以下コードでseleniumのブラウザを最後開いたままにしたいためです。
os.kill(driver.service.process.pid,signal.SIGTERM)
発生している問題・エラーメッセージ
[WDM] - Current google-chrome version is 87.0.4280 [WDM] - Driver [/root/.wdm/drivers/chromedriver/linux64/87.0.4280.20/chromedriver] found in cache … File "/mnt/c/workspace/src/main.py", line 58, in main driver = webdriver.Chrome(executable_path=ChromeDriverManager(response.text).install(), options=options) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__ desired_capabilities=desired_capabilities) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
該当のソースコード
Python
1import requests 2from selenium import webdriver 3from webdriver_manager.chrome import ChromeDriverManager 4from webdriver_manager.utils import chrome_version 5 6def main(): 7 options = webdriver.ChromeOptions() 8 options.add_argument('--disable-dev-shm-usage') 9 options.add_argument('start-maximized') 10 options.add_argument('disable-infobars') 11 options.add_argument('--disable-extensions') 12 options.add_argument('--disable-gpu') 13 options.add_argument('--no-sandbox') 14 # options.add_argument('--headless') 15 16 version = chrome_version() 17 url = 'http://chromedriver.storage.googleapis.com/LATEST_RELEASE_' + version 18 19 response = requests.get(url) 20 driver = webdriver.Chrome(executable_path=ChromeDriverManager(response.text).install(), options=options) 21 driver.get('https://google.com')
試したこと
・optionの--headless つけ外し
・optionを一通り設定
補足情報(FW/ツールのバージョンなど)
- Ubuntu 18.04 LTS
- Python 3.6.9
- Chromeブラウザ 87.0.4280.66
- ChromeDriver(ChromeDriverManagerで自動ダウンロード) 87.0.4280.20
回答2件
あなたの回答
tips
プレビュー