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

#java #selenium #selenium-webdriver #webdriver #webdriver-w3c-spec

Вопрос:

Если мы создадим :

 ChromeDriver driver=new ChromeDriver();
 

будут выполнены методы драйвера chrome.

И если мы создадим :

 WebDriver driver=new ChromeDriver();
 

снова ChromeDriver выполняются методы [в соответствии с переопределением метода].

Тогда почему мы пишем последнее только во время выполнения?

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

1. формат вопроса является частью решения, поэтому вам нужен заголовок и форматирование вашего вопроса

Ответ №1:

Драйвер ChromeDriver = новый драйвер ChromeDriver();

Если вы используете ChromeDriver driver = new ChromeDriver(); экземпляр ChromeDriver, который будет создан с помощью этого, мы сможем вызывать и действовать только методами, реализованными ChromeDriver и поддерживаемыми только браузером Chrome. Чтобы работать с другими браузерами, мы должны специально создавать отдельные объекты, как показано ниже :

  • FirefoxDriver driver = new FirefoxDriver();
  • InternetExplorerDriver driver = new InternetExplorerDriver();

Интерфейс WebDriver

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


Драйвер веб-драйвера = новый ChromeDriver();

Через WebDriver driver = new ChromeDriver(); мы создаем экземпляр интерфейса WebDriver и передаем его в класс ChromeDriver. Все драйверы браузеров, такие как:

реализован интерфейс WebDriver (на самом деле класс RemoteWebDriver реализует интерфейс WebDriver, а драйверы браузера расширяют RemoteWebDriver). Поэтому , если мы используем WebDriver driver , то мы можем использовать уже инициализированный драйвер (в качестве общей объектной переменной) для всех браузеров, которые мы хотим автоматизировать, например, Mozilla, Chrome, InternetExplorer, Edge, Opera, Safari, следующим образом:

 WebDriver driver = new FirefoxDriver();
// or
WebDriver driver = new ChromeDriver();
// or
WebDriver driver = new InternetExplorerDriver();
// or
WebDriver driver = new EdgeDriver();
// or
WebDriver driver = new OperaDriver();
// or
WebDriver driver = new SafariDriver();
 

Мелочи

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

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

1. супер..это то, что я искал