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

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

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 Interface

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


Зачем WebDriver driver = new ChromeDriver();

Через WebDriver driver = new ChromeDriver(); мы создаем экземпляр интерфейса WebDriver и приводим его к классу ChromeDriver. Все драйверы браузера, такие как 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();

пустяки WebDriver Interface

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

Другие вопросы по тегам