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(), нужно:
- Заимпортить сервисы,
from selenium.webdriver.firefox.service import Service - Создать сервис и уже в нем указывать executable_path,
service=FirefoxService(executable_path='путь к geckodriver') - Указать сервис как параметр webdriver.Firefox(),
webdriver.Firefox(service = service, options=option)
У меня проблема решилась, если же у вас, у тех кто столкнулся с этой проблемой, продолжает возникать ошибка то попробуйте:
- Обновить selenium
- Переустановить или установить браузер, я использовал firefox, но можно другой любой, посмотрите реализацию в документации документация
- Попробуйте переустановить geckodriver