Ранее я использовал класс DesiredCapabilities для создания универсального метода для настройки всех возможностей браузера с использованием внешнего файла (ключ = значение формата).Вот мой код
public DesiredCapabilities setWebDriverCapabilities(String browser) throws IOException {
switch (browser) {
case "ie":
capabilities = new DesiredCapabilities().internetExplorer();
break;
case "firefox":
capabilities = new DesiredCapabilities().firefox();
break;
case "chrome":
capabilities = new DesiredCapabilities().chrome();
break;
case "edge":
capabilities = new DesiredCapabilities().edge();
break;
case "safari":
capabilities = new DesiredCapabilities().safari();
break;
default:
capabilities = null;
}
Properties prop = new Properties();
String FS = File.separator;
prop.load(new FileInputStream("src" + FS + "test" + FS + "resources" + FS + browser + ".capabilities"));
Set < Object > keys = prop.keySet();
for (Object k: keys) {
String key = (String) k;
capabilities.setCapability(key, prop.getProperty(key));
}
return capabilities;
}
Я обнаружил, что рекомендуется использовать классы Options, так как некоторые классы возможностей будут устаревшими.Поэтому я пытаюсь заменить этот метод другим методом, который будет работать для всех классов параметров
- FirefoxOptions
- ChromeOptions
- InternetExplorerOptions
- SafariOptions
- EdgeOptions
Я не могу найти общий тип объекта для всех упомянутых выше классов, чтобы создать аналогичный метод, в котором я использовал DesiredCapabilities.
Я хочу вернуть общий тип объекта из этого нового метода, чтобы я мог использовать его для инициализации всех драйверов, например
driver = new ChromeDriver(setOptions());
driver = new FirefoxDriver(setOptions());