selenium по-моему что-то перепутал

в общем, есть у меня функция, которая проверяет данные пользователя на достоверность, то есть пользователь вводит логин и пароль, а функция проверяет реальны ли они. Тестил на своем компьютере ос- win10, хочу закинуть на vps сервер, ос - ununtu 20.04, ошибка, selenium.common.exceptions. InvalidArgumentExcept: Message: binary is not a Firefox executable, на stack overflow прочитал что можно добавить параметр executable_path='путь до geckodriver', но при вводе данного параметра выходит новая ошибка TypeError: WebDriver () got an unexpected keyword argument ‘executable_path', selenium точно новой версии, вот вам функция если нужно:

def try_to_sign_in_upload_kaspi(User_login, User_password):
    
    ff = '/snap/bin/geckodriver'
    
    option = webdriver.FirefoxOptions()

    option.add_argument("--headless")

    with closing(webdriver.Firefox(executable_path=ff, options=option)) as browser:
         # функционал, который не выводит ошибок

Ответы (1 шт):

Автор решения: Константин

Спасибо Эникейщик, благодаря документации, которой вы отправили я нашел решение вопроса. В новой версии, чтобы указать путь к драйверу нужно использовать не executable_path в параметрах webdriver.Firefox(), нужно:

  1. Заимпортить сервисы, from selenium.webdriver.firefox.service import Service
  2. Создать сервис и уже в нем указывать executable_path, service=FirefoxService(executable_path='путь к geckodriver')
  3. Указать сервис как параметр webdriver.Firefox(), webdriver.Firefox(service = service, options=option)

У меня проблема решилась, если же у вас, у тех кто столкнулся с этой проблемой, продолжает возникать ошибка то попробуйте:

  1. Обновить selenium
  2. Переустановить или установить браузер, я использовал firefox, но можно другой любой, посмотрите реализацию в документации документация
  3. Попробуйте переустановить geckodriver
→ Ссылка