#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. Все драйверы браузеров, такие как:
- FirefoxDriver
- Хромированный привод
- Устройство для поиска в Интернете
- Река Фантомейсдрайвер
- Сафаридрайвер и т. д
реализован интерфейс 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. супер..это то, что я искал