Разница между выполнением теста Selenium с использованием Webdriver и без использования Webdriver - PullRequest
1 голос
/ 15 мая 2019

Не используя webdriver , я заметил, что метод driver.FindElement имеет тип возвращаемого значения WebElement-Remotewebdriver.

При использовании Webdriver я заметил, что метод FindElement имеет тип возвращаемого значения WebElement-Webdriver.

ChromeDriver driver = new ChromeDriver();

driver.get("https://ui.freecrm.com/");

driver.findElement(By.xpath("//div[@class='ui fluid large blue submit button']"));

Если Chromedriver реализует интерфейс Webdriver, почему я вижу тип возврата findElement как Webelement-RemoteWebdriver, а не Webelement-Webdriver?

И я знаю, что класс RemoteWebdriver реализует интерфейс Webdriver. Когда будет использоваться remotewebdriver и почему?

1 Ответ

1 голос
/ 15 мая 2019

SearchContext - это корневой интерфейс, расширенный интерфейсами webdriver и webelement.

Итак, когда мы говорим об интерфейсе веб-драйвера, есть два класса, которые реализуют этот интерфейс

  • EventFiringWebDriver.
  • RemoteWebDriver.

Существует 6 классов, расширяющих класс RemoteWebDriver, таких как ChromeDriver, FF, IE и т. Д.

Посмотрите, что в официальных документах написано:

Вы можете использовать WebDriver удаленно так же, как вы используете его локально . Основное отличие состоит в том, что удаленный WebDriver должен быть настроен , чтобы он мог запускать ваши тесты на отдельной машине . Удаленный WebDriver состоит из двух частей: клиент и сервер . Клиент - это ваш тест WebDriver , а сервер - просто сервлет Java , который можно разместить на любом современном сервере приложений JEE .

Для более подробной информации вы можете обратиться: Официальная ссылка

Q. Если Chromedriver реализует интерфейс Webdriver, почему я вижу возвращаемый тип findElement как Webelement-RemoteWebdriver, а не Webelement-Webdriver?

Ответ: Chromedriver - это открытый класс, который не реализует интерфейс Webdriver . и расширяет защищенный класс RemoteWebDriver.

...