Перейти к содержимому

Фотография

Как прикрутить WebdriverManager к Splinter?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Gleb_Kazarkin

Gleb_Kazarkin

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 18 января 2020 - 17:14

Я использую Splinter, но драйвер добавляется вручную или в корень проекта. Как насчёт использования webdriver_manager? Как соединить их?
Как ни пробовал, не получилось.

Исходный код такой (Splinter):



@pytest.fixture(scope="function")
def browser(request):
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
executable_path = {'executable_path': "../chromedriver.exe"}
""" Using splinter (python tool): https://github.com/cobrateam/splinter"""
browser = Browser("chrome", headless=False, incognito=True, options=options, **executable_path)
# browser = Browser("chrome", headless=False, incognito=True)
yield browser
browser.quit()
github.com/cobrateam/splinter
github.com/SergeyPirogov/webdriver_manager 

 


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 18 января 2020 - 19:49

По документации:

from webdriver_manager.chrome import ChromeDriverManager
webdriver.Chrome(ChromeDriverManager().install())

перед опциями вставить вторую строчку.

 


  • 0

#3 Gleb_Kazarkin

Gleb_Kazarkin

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 19 января 2020 - 15:21

1) browser = Browser(webdriver.Chrome(ChromeDriverManager().install()))
Пытается скачать, запускается браузер и падает с ошибкой:

except KeyError:
>           raise DriverNotFoundError("No driver for %s" % driver_name)
E           splinter.exceptions.DriverNotFoundError: No driver for <selenium.webdriver.chrome.webdriver.WebDriver (session="e5b4aff9f131046afc151b86df5b3662")>


..\venv\lib\site-packages\splinter\browser.py:88: DriverNotFoundError

2) Если browser = Browser(ChromeDriverManager().install())

DriverNotFoundError

3) Если browser = Browser("chrome", ChromeDriverManager().install())

E       UnboundLocalError: local variable 'e' referenced before assignment


..\venv\lib\site-packages\splinter\browser.py:68: UnboundLocalError

  • 0

#4 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 20 января 2020 - 09:02

Документация для Splinter какая-то бедная.

 

Конструктор для Browser выглядит так:

def Browser(driver_name="firefox", retry_count=3, *args, **kwargs)

Почему вы пытаетесь вставлять путь вместо driver_name или retry_count, непонятно.

Но и в документации добавочные аргументы нигде толком не описаны.

Покопавшись, можно найти, что путь к браузеру надо вставлять с именем аргумента executable_path.


  • 0

#5 Gleb_Kazarkin

Gleb_Kazarkin

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 20 января 2020 - 20:37

Да, мне удаётся прописать путь до локального файла через executable_path, но речь о webdriver_manager (для автоскачивания\апдейте\установки)


  • 0

#6 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 21 января 2020 - 08:55

Да, фишка в том чтобы установить нужный драйвер менеджером, а затем у этого менеджера спросить пусть к драйверу и уже использовать этот путь.

Менеджер не изменяет системную переменную путь к драйверу автоматом.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных