В чем преимущество использования ChromeDriver по сравнению с WebDriver, если мы используем только браузер Chrome в нашем сценарии автоматизации Selenium - PullRequest
0 голосов
/ 11 декабря 2018

Я использую переменные WebDriver и ChromeDriver следующим образом:

  • Строка1:

    WebDriver driver1 = new ChromeDriver();
    
  • Строка2:

    ChromeDriver driver2 = new ChromeDriver();
    

Мой сценарий ограничен для запуска тестовых случаев только в Chrome Driver, поэтому я никогда не буду использовать какой-либо другой браузер для тестирования.Таким образом, если я выберу Line2 в своем коде вместо Line1, будет ли это иметь какое-либо значение с точки зрения каких-либо функциональных возможностей или преимуществ (ищет любые дополнительные функциональные возможности, которые класс ChromDriver может предоставить в дополнение к существующим методам интерфейса WebDriver).

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

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

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

  • 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 Class .Все Браузерные драйверы , такие как 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();

Этот вопрос

Теперь, как вы упомянули will never use any other browser for my testing purpose, вы можете вернуться к ChromDriver Class.Но на этом этапе стоит упомянуть, что ChromeDriver - это автономный сервер, который реализует проводной протокол WebDriver для Chromium.Команда Chromium находится в процессе внедрения и перехода на стандарт W3C .

Итак, вперед, ChromeDriver , GeckoDriver , IEDriverServer , OperaDriver , SafariDriver каждый вариант будет соответствовать только стандарту W3C .

Вы можетеНайдите соответствующее обсуждение в В чем разница между ChromeDriver и WebDriver в селене?

0 голосов
/ 11 декабря 2018

IWebDriver - это Interface, а ChromeDriver - это class, который реализует IWebDriver.Кроме того, ChromeDriver может использоваться только для создания экземпляра браузера Chrome, тогда как IWebDriver может представлять любой из поддерживаемых браузеров: (Firefox, IE, Edge ...).

В частности, в вашем случае я бы использовал: ChromeDriver driver2 = new ChromeDriver(); просто потому, что, как вы заявили, вы будете когда-либо использовать Chrome в своем тестировании.

Есть несколько хороших ответов здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...