WebDriverException: Сообщение: недопустимый аргумент: невозможно завершить завершенный процесс с помощью GeckoDriver, Selenium и Python на RaspberryPi3 - PullRequest
0 голосов
/ 27 сентября 2018

Сервер: Raspberry Pi 3
ОС: Dietpi - версия 159
Версия Geckodriver: 0,22 для arm
Версия Firefox: 52.9.0
Версия Python: 3.5
Версия Selenium: 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')
...
...

Вывод:

root@RPi3:~# 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

Есть идеи, что не так?Я попробовал Google без удачи.

Ответы [ 6 ]

0 голосов
/ 19 июня 2019

Я использовал:

  • VS Код
  • Linunx / Ubuntu: 18.10
  • Nightwatch.js

Моя проблема заключалась в том, чтоЯ попытался запустить Nightwatch (который автоматически запускает GeckoDriver) из терминала VS Code.

0 голосов
/ 12 апреля 2019

Я был в режиме без головы, используя правильные версии всего, и единственный способ выйти из этого сообщения об ошибке был , а не , чтобы выполнить тест селена от имени root

0 голосов
/ 07 февраля 2019

Если вы используете 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 / тестирование / geckodriver / Support.html

0 голосов
/ 08 ноября 2018

Да, проверено Запустите 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

0 голосов
/ 04 октября 2018

Я смог это исправить, запустив свои тесты с Xvfb.Я запускал их на удаленном сервере.

Я использовал Jenkins, поэтому я установил флажок, который выглядел следующим образом:

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

Кредит https://www.obeythetestinggoat.com/book/chapter_CI.html

0 голосов
/ 27 сентября 2018

Это сообщение об ошибке ...

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

... означает, что GeckoDriver не смог инициировать / порождать новый сеанс WebBrowsing , т.е. Браузер Firefox сеанс.

Ваша основная проблема - несовместимость между версиями используемых вами двоичных файлов:

  • Ваш GeckoDriver версия 0.22.0 .
  • Примечания к выпуску GeckoDriver v0.21.0 (2018-06-15) ясно упоминает следующее:

    • Firefox 57 (и выше)

    • Селен 3.11 (и выше)

  • Ваш Firefox версия 52.9.0 .

Итаксуществует явное несоответствие между GeckoDriver v0.22.0 и Firefox Browser v57


Solution

  • Обновление GeckoDriver до GeckoDriver v0.22.0 левel.
  • GeckoDriver присутствует в указанном месте.
  • GeckoDriver имеет разрешение на выполнение для пользователей без полномочий root .
  • Обновление Firefox версия до Firefox v62.0.2 уровней.
  • Очистка вашего рабочего пространства проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
  • Если ваша базовая Веб-клиент версия слишком старая, то удалите ее через Revo Uninstaller и установите последнюю версию GA и выпущенную версию Веб-клиент .
  • Выполните Selenium Test как non-пользователь root .

GeckoDriver , Selenium и Браузер Firefox таблица совместимости

supported_platforms_geckodriver_24

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...