почему селен не работает должным образом на манджаро (проблема PATH)

я только что скачал селен и хотел попробовать простой код:

from selenium import webdriver

driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
driver.get("https://www.youtube.com")

ошибка:

Traceback (most recent call last):
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/main.py", line 3, in <module>
    driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
    RemoteWebDriver.__init__(
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-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

это также не работает, если я изменю

driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')

to

driver = webdriver.Firefox()

я сделал исполняемый файл драйвера gecko с помощью chmod +x geckodriver

переместил его в usr/local/bin

и установить путь следующим образом:

export PATH=$PATH:/usr/local/bin/geckodriver

все еще не работает

с webdriver-manager ошибка

Traceback (most recent call last):
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/main.py", line 4, in <module>
    driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
    RemoteWebDriver.__init__(
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/keksik/JetBainz/PycharmProjects/pythonProject1/venv/lib/python3.8/site-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

person keksik-lolz    schedule 26.10.2020    source источник


Ответы (2)


Судя по всему, проблема возникает из-за неадминистративных привилегий. Место, где у вас есть ваш драйвер, требует привилегий root для выполнения/запуска. Я предлагаю вам переместить драйвер куда-нибудь в ваш домашний каталог, где вам не нужны привилегии суперпользователя для запуска драйвера.

person Clay    schedule 26.10.2020

Вы всегда можете установить драйвер Firefox на лету. Просто убедитесь, что у вас установлена ​​нормальная версия Firefox. Это не имеет никакой зависимости от вашей локальной настройки.

Все, что вам нужно сделать, это:

self.driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

из

from webdriver_manager.firefox import GeckoDriverManager
person theNishant    schedule 26.10.2020
comment
когда я pip install webdriver, он говорит ОШИБКА: не удалось найти версию, которая удовлетворяет требованиям веб-драйвера (из версий: нет) - person keksik-lolz; 26.10.2020
comment
Потому что нет пакета python под названием webdriver. Это в пакете селена - person theNishant; 26.10.2020
comment
Прямой импорт из селена - person theNishant; 26.10.2020
comment
Моя неудачная попытка pip install webdriver-manager или pip3, если она у вас есть - person theNishant; 26.10.2020
comment
в чем проблема - person theNishant; 26.10.2020
comment
selenium.common.exceptions.SessionNotCreatedException: Сообщение: невозможно найти соответствующий набор возможностей - person keksik-lolz; 26.10.2020
comment
та же ошибка, я отредактировал сообщение, чтобы я мог опубликовать полную ошибку - person keksik-lolz; 26.10.2020
comment
У вас установлен firefox на вашем компьютере?? - person theNishant; 26.10.2020
comment
да, конечно, он открывается с помощью этого кода, но не заходит ни на сайт, ни на ютуб, ни в гугл из селена импортировать веб-драйвер из селена.вебдрайвер.common.desired_capabilities .Firefox(capabilities=cap, executable_path=C:\\path\\to\\geckodriver.exe) browser.get('google.com/') browser.quit() - person keksik-lolz; 27.10.2020