質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.96%

Seleniumをheadlessモードなしで実行したときに「~exited abnormally.」と表示され動作しない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,191

score 0

前提・実現したいこと

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.)

該当のソースコード

import requests
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.utils import chrome_version

def main():
        options = webdriver.ChromeOptions()
        options.add_argument('--disable-dev-shm-usage') 
        options.add_argument('start-maximized')
        options.add_argument('disable-infobars') 
        options.add_argument('--disable-extensions') 
        options.add_argument('--disable-gpu')  
        options.add_argument('--no-sandbox') 
        # options.add_argument('--headless') 

        version = chrome_version()
        url = 'http://chromedriver.storage.googleapis.com/LATEST_RELEASE_' + version

        response = requests.get(url)  
        driver = webdriver.Chrome(executable_path=ChromeDriverManager(response.text).install(), options=options)
        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
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • t_obara

    2020/12/16 19:39

    すでに最初の質問は解決しているのであれば、こちらを閉じて、その上で、再度助言に従い構成をきちんと提示した上で質問を別途投げてみてはいかがでしょうか。

    キャンセル

回答 2

check解決した方法

0

>ChromeDriverをChromeDriverManagerで自動でダウンロードし、seleniumをブラウザを開いたまま実行したいのですが、headlessモードでは問題なく実行でき、headless otptionをはずすとエラーとなります。
この原因についてご教示をお願いいたします。

結局当初から記載している上記については何も解決していないのですが、閉じたいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

Dev-Toolsとのやりとりに以下のポートが必要です。オプションに追加してみてください。
(エラーに(unknown error: DevToolsActivePort file doesn't exist)って出てるので、これが原因かと)

options.add_argument("--remote-debugging-port=9222") 

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/12/10 22:53

    chromeブラウザのバージョンが87.0.4280.66(Version87)であるなら
    そのバージョンに対応した最新のchromeドライバーは、ChromeDriver 87.0.4280.88です。
    そちらを入れてみたらいかがでしょうか。
    https://sites.google.com/a/chromium.org/chromedriver/downloads

    キャンセル

  • 2020/12/11 23:48

    長期にお付き合いいただき非常にありがとうございます。
    ChromeDriverManagerではなく、以下のコードで手動でPathを指定するよう変更してみたところ、
    別のエラーになったので、ちょっと問題が違う方向に進みそうなので深堀はやめておきたいと思います。
    (/etc/hostsに127.0.0.1 localhostはコメントアウトされておらず設定されています)

    driver = webdriver.Chrome('/mnt/c/workspace/driver/chromedriver.exe')
    ----
    File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
    self.service.start()
    File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/service.py", line 104, in start
    raise WebDriverException("Can not connect to the Service %s" % self.path)
    selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service /mnt/c/workspace/driver/chromedriver.exe

    キャンセル

  • 2020/12/14 17:08

    ubuntu上でdriver指定してるわけでなく。。Windows上のdriver使ってるんですね。
    WSL2上のubuntuなのは理解しましたが。。
    最初からその旨記載されてないとubuntuでdriver指定していると思います。
    ubuntuからWindowsのexeは実行できるんでしたっけ?
    そもそもがおかしいと思いますよ。(これ以上は、システム構成を記載していただかないと答えようないです)

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.96%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る