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