В чем разница между WebDriver и WebElement в Selenium? - PullRequest
0 голосов
/ 12 октября 2018

В чем разница между WebDriver и WebElement в Selenium?

Пример кода:

WebDriver driver = new FirefoxDriver();      
driver.get("http://www.google.com");      
WebElement s  = driver.findElement(By.name("q"));      
s.sendKeys("Packt Publishing");      
s.submit();

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Интерфейс WebDriver

С точки зрения Selenium интерфейс WebDriver похож на соглашение, которое сторонняя компания Поставщики браузеров любит Mozilla , Chrome , Internet Explorer , Safari и т. Д. Должны придерживаться и реализовывать одно и то же.Это, в свою очередь, поможет конечным пользователям использовать открытые API-интерфейсы для написания общего кода и реализовать функциональные возможности всех доступных Browsers без каких-либо изменений.


Драйвер WebDriver = новый FirefoxDriver ();

Через WebDriver driver = new FirefoxDriver(); мы создаем экземпляр интерфейса WebDriver и приводим к классу FirefoxDriver .Все Браузерные драйверы , такие как FirefoxDriver , ChromeDriver , InternetExplorerDriver , PhantomJSDriver , SafariDriver и т. д. реализовали интерфейс WebDriver (фактически класс RemoteWebDriver реализует Интерфейс WebDriver и Драйверы браузера расширяет RemoteWebDriver ),Поэтому, если мы используем WebDriver driver, то мы можем использовать уже инициализированный драйвер (как переменную общего объекта) для всех браузеров, которые мы хотим автоматизировать, например, Mozilla, Chrome, InternetExplorer, PhantomJS, Safari.

WebDriver driver = new FirefoxDriver();
driver = new ChromeDriver();
driver = new FirefoxDriver();
driver = new SafariDriver();

Подробное обсуждение можно найти в:


Интерфейс WebElement

С Селен перспектива, WebElement представляет элемент HTML.Как правило, все операции, связанные с взаимодействием со страницей, будут выполняться через этот интерфейс.

A WebElement - это абстракция, используемая для идентификации узлов Element, и ее просто называютэлементы при транспортировке по протоколу между удаленным и локальным концами.Идентификатор веб-элемента - это строковая константа, выраженная в виде:

"element-6066-11e4-a52e-4f735466cecf"

Подробное обсуждение можно найти в Значения, возвращаемые веб-драйверами

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

ECMAScript Object представляет веб-элемент, если он имеет собственное свойство идентификатора веб-элемента.

Каждый контекст просмотра имеет связанный список известных элементов.Когда контекст просмотра отбрасывается, вместе с ним отбрасывается список известных элементов.

Подробное обсуждение можно найти в Почему возвращаемый тип findElement (By by) равен WebElement?

Некоторые из обычно используемых связанных методов следующие:

  • clear()
  • click()
  • findElement(By by)
  • findElements(By by)
  • getAttribute(java.lang.String name)
  • getCssValue(java.lang.String propertyName)
  • getLocation()
  • getRect()
  • getSize()
  • getTagName()
  • getText()
  • isDisplayed()
  • isEnabled()
  • isSelected()
  • sendKeys(java.lang.CharSequence... keysToSend)
  • submit()
0 голосов
/ 12 октября 2018

Класс WebDriver ориентирован на управление браузером в широком смысле .Он загружает страницы, переключается на разные окна / фреймы, получает заголовок страницы и т. Д. Широкие действия, которые не относятся к элементу на странице.

WebElement концентрируется на взаимодействии с определенный элемент, который вы нашли.Такие вещи, как:

  • Щелчок по этому конкретному элементу
  • Получение текста и других значений из этого конкретного элемента
  • Определение местоположения этого конкретного элемента
  • Отправка текста на этот конкретный элемент (например, заполнение поля ввода)

Единственное реальное перекрытие между WebDriver и WebElement - это методы findElement и findElements.Для Webdriver эти методы определяют местоположение By в любом месте страницы.Для WebElement эти методы размещают данное By в контексте этого элемента (обычно внутри него).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...