Вебдрайвер

WebDriver — это интерфейс удаленного управления, который позволяет осуществлять самоанализ и контроль над пользовательскими агентами. Он предоставляет независимый от платформы и языка проводной протокол, позволяющий внешним программам удаленно управлять поведением веб-браузеров.

Возможность написания наборов инструкций, которые можно взаимозаменяемо запускать во многих браузерах на разных платформах, имеет решающее значение для обеспечения единообразия работы пользователей. В связи с новой волной развития веб-платформы, увеличением разнообразия устройств и требованиями к реальному взаимодействию между технологиями, WebDriver предоставляет инструменты для кросс-браузерного тестирования .

Предоставляется набор интерфейсов для обнаружения элементов DOM в веб-документах и ​​управления ими, а также для управления поведением пользовательского агента. В первую очередь он предназначен для того, чтобы веб-авторы могли писать тесты, которые автоматизируют пользовательский агент из отдельного процесса управления, но также могут использоваться таким образом, чтобы позволить сценариям в браузере управлять — возможно, отдельным — браузером.

Применение Так что же позволяет делать WebDriver и как это выглядит? Поскольку WebDriver не зависит от языка программирования, ответ на этот вопрос зависит от того, какой клиент WebDriver вы используете, и от выбора языка.

Но при использовании популярного клиента, написанного на Python, ваше взаимодействие с WebDriver может выглядеть так:

ПИТОН Скопировать в буфер обмена

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.expected_conditions import presence_of_element_located

with webdriver.Firefox() as driver:

  driver.get("http://google.com/ncr")
  wait = WebDriverWait(driver, 10)
  driver.find_element(By.NAME, "q").send_keys("cheese" + Keys.RETURN)
  wait.until(presence_of_element_located((By.XPATH, '//*[@id="rcnt"]')))
  results = driver.find_elements(By.XPATH, "//a[@href]")
  for i, elem in enumerate(results):
      print(f'#{i} {elem.text} ({elem.get_attribute("href")})')

Это может привести к выводу, подобному этому:

#1 Cheese - Wikipedia (https://en.wikipedia.org/wiki/Cheese) Ссылка Команды Команды

Закрой окно Получить атрибут элемента Получить свойство элемента Получить имя тега элемента Получить тайм-ауты Получить оконные ручки Получить прямоугольник окна Новое окно Установить тайм-ауты Установить прямоугольник окна Типы Типы

Объект ошибки Объект тайм-аутов веб-элемент Вебокно Возможности Возможности

acceptInsecureCerts firefoxOptions URL-адрес веб-сокета Ошибки Ошибки

Небезопасный сертификат Недействительным аргумент Недействительный домен cookie Неверный селектор Недопустимый идентификатор сеанса Ошибка JavaScript Тайм-аут скрипта Ссылка на устаревший элемент Неизвестная команда Неизвестная ошибка Неизвестный метод Технические характеристики Вебдрайвер