Может ли WebDriver заменить ChromeDriver, чтобы тесты Selenium работали во всех браузерах

#selenium #selenium-webdriver #testng #selenium-chromedriver

#селен #selenium-webdriver #testng #selenium-chromedriver

Вопрос:

Я автоматизирую свои тесты, используя TestNG и Java:

  • Может ли WebDriver заменить ChromeDriver, чтобы наши тесты работали во всех браузерах, таких как Chrome, Firefox, Mozilla, Safari, Opera …?

  • Как мы должны настроить браузер, чтобы использовать один и тот же код для всех браузеров?

Ответ №1:

По сути, вы просто создаете экземпляр другого класса, производного от RemoteWebDriver, в зависимости от браузера, который вы тестируете.

например

 void GetWebDriver(String browserName) {
        if (CHROME.equals(browserName))
            return new ChromeDriver(capability);
        else if (FIREFOX.equals(browserName))
            return new FirefoxDriver(capability);
        else if (EDGE.equals(browserName))
            return new EdgeDriver(capability);
        else if (INTERNET_EXPLORER.equals(browserName))
            return new InternetExplorerDriver(capability);
        else if (OPERA.equals(browserName))
            return  new OperaDriver(capability);
        else if (SAFARI.equals(browserName))
            return  new SafariDriver(capability);
}
  

Я предлагаю вам изучить этот проект githob: https://github.com/sebarmeli/Selenium2-Java-QuickStart-Archetype

В частности, WebDriverFactory.java досье.

Комментарии:

1. Спасибо за ваш ответ, но что мне делать, если в моем тестовом наборе мне нужно объявить драйвер, а также в некоторых методах тестирования внутри функции run(ChromeDriver wd) {//some code } !

2. Я не уверен, что вы имеете в виду. пожалуйста, уточните.

Ответ №2:

Самый простой способ запустить ваш код в разных браузерах — использовать Selenium Grid и RemoteWebDriver. Вы можете найти документ по следующей ссылке:

https://github.com/SeleniumHQ/selenium/wiki/Grid2

Комментарии:

1. Эта ссылка по существу нарушена.