Вопрос-ответ

What is the difference between ChromeDriver and WebDriver in selenium? [duplicate]

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

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

ChromeDriver driver=new ChromeDriver();

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

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

WebDriver driver=new ChromeDriver();

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

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

Переведено автоматически
Ответ 1

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

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


  • FirefoxDriver driver = new FirefoxDriver();

  • InternetExplorerDriver driver = new InternetExplorerDriver();


Интерфейс WebDriver

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


Драйвер WebDriver = новый 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 напрямую. В соответствии с текущей практикой мы пишем наш автоматизированный тестовый скрипт для этого интерфейса, чтобы в будущем мы могли заменить более полнофункциональный браузер, когда возникнет необходимость в нем.

java selenium selenium-webdriver