web-dev-qa-db-ja.com

WebDriverException:メッセージ:無効な引数:RaspberryPi3上のGeckoDriver、SeleniumおよびPythonで終了したプロセスを強制終了できません

サーバー:Raspberry Pi 3
OS:Dietpi-バージョン159
Geckodriverバージョン:腕用0.22
Firefoxバージョン:52.9.0
Pythonバージョン:3.5
セレンバージョン:3.14.1

Geckoは実行可能で、/ usr/local/bin /にあります

from Selenium import webdriver
from Selenium.webdriver.common.by import By
from Selenium.webdriver.support.ui import WebDriverWait
from Selenium.webdriver.support import expected_conditions as EC
from Selenium.webdriver.firefox.options import Options
import time



options = Options()
options.set_headless(headless=True)
driver = webdriver.Firefox(firefox_options=options)

print('Need your login credential')
username = input('What is your username?:\n')
password = input('What is your password?:\n')
...
...

出力:

[email protected]:~# python3.5 ITE-bot.py 
Traceback (most recent call last):
  File "ITE-bot.py", line 12, in <module>
    driver = webdriver.Firefox(firefox_options=options)
  File "/usr/local/lib/python3.5/dist-packages/Selenium/webdriver/firefox/webdriver.py", line 174, in __init__
    keep_alive=True)
  File "/usr/local/lib/python3.5/dist-packages/Selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python3.5/dist-packages/Selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python3.5/dist-packages/Selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.5/dist-packages/Selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
Selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

何が間違っているのでしょうか?私は運なしでグーグルを試しました。

14
Chokoladekiks

このエラーメッセージ...

Selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

...GeckoDriverが新しいWebBrowsing SessionすなわちFirefox Browserセッションを開始/生成できなかったことを意味します。

あなたの主な問題は、次のように、使用しているバイナリのバージョン間のincompatibilityです。

  • GeckoDriverバージョンは.22.です。
  • GeckoDriver v0.21.0(2018-06-15)のリリースノートには、次のことが明記されています。

    • Firefox 57(以降)

    • Selenium 3.11(以降)

  • Firefoxバージョンは52.9.です。

そのため、GeckoDriver v0.22.0Firefox Browser v57との間には明らかな不一致があります


解決

  • GeckoDriverGeckoDriver v0.22. レベルにアップグレードします。
  • GeckoDriverは指定された場所に存在します。
  • GeckoDriverには、非ルートユーザーの実行権限があります。
  • FirefoxバージョンをFirefox v62.0.2レベルにアップグレードします。
  • CleanyourProject Workspacethrough yourIDEandRebuild必要な依存関係のみでプロジェクトをビルドします。
  • ベースWebクライアントバージョンが古すぎる場合は、 Revo Uninstaller を使用してアンインストールし、最近のGAおよびWebクライアントのリリースバージョン
  • Selenium Test非rootユーザーとして実行します。

GeckoDriverSeleniumおよびFirefox Browser互換性チャート =

supported_platforms_geckodriver_24

24
DebanjanB

ディスプレイのないシステムでFirefoxを実行している場合は、ヘッドレスモードを使用してください。

from Selenium import webdriver
from Selenium.webdriver.firefox.options import Options

options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)

また、Firefox、Selenium、およびGeckodriverの互換バージョンがあることを確認してください。 https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html

21
NFern

私はすべての正しいバージョンを使用してヘッドレスモードで、このエラーメッセージから抜け出す唯一の方法は、ルートとしてSeleniumテストを実行することでしたnot

6
Rogelio

[はい]チェックボックスをオンにすると、ビルドで問題を修正する前にXvfbを開始できますが、パイプラインまたはマルチブランチパイプラインのようなジョブがある場合、このオプションは表示されません。必要なテストを実行するために行くSeleniumグリッドのノードで:

1- Xvfbのインストール:apt install xvfb

2- Xvfbを実行します:/usr/bin/Xvfb :99 -ac -screen 0 1024x768x8 & export DISPLAY=":99"

3-ノードを再実行します。例:Java -jar Selenium.jar -role node -hub http://#.#.#.#:4444/grid/register -capabilities browserName=firefox,plataform=linux -Host #.#.#.# -port 1991

6
conde

私が使用した:

  • Linux/Ubuntu:18.10
  • Nightwatch.js
  • 私の問題は、Nightwatch(GeckoDriverを自動的に起動する)を実行しようとしたことでしたfrom VS Codeターミナル。

.

1
flow3r

Xvfbでテストを実行することでこれを修正できました。リモートサーバーで実行していました。

私はJenkinsを使用していたので、次のようなボックスをチェックしました。

Credit to https://www.obeythetestinggoat.com/book/chapter_CI.html

https://www.obeythetestinggoat.com/book/chapter_CI.html へのクレジット

0
Daniel Butler