Вы не упомянули о вашем сценарии использования в деталях, и неясно, почему вы бы хотели ограничить свои тесты только реализацией ChromeDriver .
Если выиспользуйте ChromeDriver driver = new ChromeDriver();
экземпляр ChromeDriver , который будет создан, сможет вызывать и действовать только на методы, реализованные ChromeDriver и поддерживаемые только Chrome Browser .Для работы с другими браузерами вы должны специально создавать отдельные объекты, как показано ниже:
FirefoxDriver driver = new FirefoxDriver();
InternetExplorerDriver driver = new InternetExplorerDriver();
Интерфейс WebDriver
С точки зрения Selenium интерфейс WebDriver аналогичен соглашению, которое стороннее Поставщики браузеров подобно Mozilla , Chrome , Internet Explorer , Safari и т. Д. Должны придерживаться и реализовывать одно и то же.Это, в свою очередь, поможет конечным пользователям использовать открытые API-интерфейсы для написания общего кода и реализовать функциональные возможности всех доступных браузеров без каких-либо изменений.
Вы найдете подробныйобсуждение в в чем разница между ChromeDriver и WebDriver в селене?
Решение
Вместо использования переключателя реализации ChromeDriver на Интерфейс WebDriver .В соответствии с текущим сценарием мы должны непосредственно реализовать реализации WebDriver Interface .В настоящее время мы пишем Automated Test Script для этого интерфейса, чтобы в будущем мы могли поменяться в более полнофункциональном браузере, когда есть потребность в нем.
Пример:
case "chrome":
testBrowserName = "CH";
WebDriverManager.chromedriver().setup();
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(chromeOptions);
WebDriverRunner.setWebDriver(driver);
break;