Как работают привязки Selenium и как мне их использовать?

#python #selenium #webdriver

#python #selenium #webdriver

Вопрос:

Примечание: это может быть скорее «мета» проблема понимания документации, а не конкретная проблема с самими привязками Selenium.

Я смотрю на привязки Selenium Python, и я немного смущен.

Для большинства примеров того, как запустить простой экземпляр браузера, требуется что-то вроде этого:

 from selenium import webdriver
browser = webdriver.Firefox()
browser.get("www.google.com")
  

Теперь я смотрю на объект webdriver.firefox и вижу, что с этим объектом связаны четыре метода! Я уверен, что должно быть больше, чем это. Где, например, .get() в моем примере?

Итак, я начинаю осматриваться и вижу, что есть куча методов, которые я могу использовать для webdriver.Firefox() объекта в webdriver.remote. Но, похоже, это не имеет смысла? Я не использую webdriver.remote ? Почему все эти методы здесь?

Наконец, мое замешательство усугубляется тем фактом, что существует selenium.selenium , в котором есть множество интересных и мощных методов, но я понятия не имею, как их использовать. Тогда не работайте с webdriver.Firefox() объектом, так как же мне их использовать? Почему они никогда не появляются ни в каких примерах?

Ответ №1:

webdriver.Firefox() на самом деле является webdriver.firefox.WebDriver.

Просто взгляните на код в selenium/webdriver/__init__.py и selenium/webdriver/firefox/webdriver.py , который многое наследует от класса RemoteWebDriver.

Также есть краткое введение в привязки selenium python. Получайте удовольствие!

Комментарии:

1. Спасибо! Из интереса, если я это сделаю from selenium import webdriver , а затем укажу «несмещенный» путь: browser = webdriver.firefox.webdriver.WebDriver() , он работает нормально, но если я это сделаю import selenium , то выполнение browser = selenium.webdriver.firefox.webdriver.WebDriver() не распознается?