Selenium «Невозможно найти соответствующий набор возможностей», несмотря на то, что драйвер находится в / usr / local / bin - PullRequest
0 голосов
/ 28 декабря 2018

Я пытался открыть браузер Firefox с помощью селена Webdriver.У меня уже есть мой geckodriver в /usr/local/bin, так как я работаю над проектом веб-очистки и сканирования.

  • Geckodriver версия-21.0
  • Firefox версия-64.0 (квант)
  • Версия Selenium - 3.141.0.

Также пробовал geckodriver версий, т. Е. 17.0,19.0,23.0;найти комбинацию.

То, что я пробовал, приведено в следующем коде.

from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup

driver=webdriver.Firefox()
driver.get("https://kissanime.ru/")
driver.maximize_window()

При выполнении кода выскочила ошибка:

Traceback (most recent call last):
  File "downloader.py", line 9, in <module>
    driver=webdriver.Firefox()
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
keep_alive=True)
  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.SessionNotCreatedException: Message: Unable to find a matching set of capabilities

1 Ответ

0 голосов
/ 28 декабря 2018

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

selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities

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

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

Решение

  • Обновление Селен до текущих уровней Версия 3.141.59 .
  • Обновление GeckoDriver до GeckoDriver v0.23.0 level.
  • Убедитесь, что GeckoDriver присутствует в указанном месте.
  • Убедитесь, что GeckoDriver имеет разрешение на выполнение для пользователей без полномочий root.
  • Обновление Firefox версии до Firefox v64.0. уровней.
  • Очистка ваш Project Workspace через IDE и Перестройка вашего проекта только с необходимыми зависимостями.
  • ( WindowsOS only ) Используйте CCleaner , чтобы стереть все рутинные операции ОС до и после выполнения вашего Test Suite .
  • ( только для LinuxOS ) Освободите и освободите неиспользуемую / кэшированную память в Ubuntu / Linux Mint до и после выполнения Test Suite .
  • Если ваша базовая Веб-клиент версия устарела, удалите ее через Revo Uninstaller и установите последнюю версию GA и выпущенную версию Веб-клиент .
  • Возьмите Перезагрузку системы .
  • Передайте аргумент executetable_path вместе с абсолютным путем GeckoDriver при запуске сеанса WebDriver / WebBrowser следующим образом:

    • ОС Windows формат:

      driver = webdriver.Firefox(executable_path=r'C:\path\to\geckodriver.exe')
      
    • Linux и MAC OS X формат:

      driver = webdriver.Firefox(executable_path='/path/to/geckodriver')
      
  • Выполните Test без полномочий rootпользователь.

  • Всегда вызывайте driver.quit() в методе tearDown(){}, чтобы закрыть и уничтожить WebDriver и Web Client экземпляров изящно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...