Selenium 中所有浏览器选项 类 的通用选项对象
Common options object for all browser option classes in Selenium
我之前使用 DesiredCapabilities class 创建了一个使用外部文件(key=value 格式)来设置浏览器所有功能的通用方法。这是我的代码
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;
}
我发现建议使用选项 classes,因为一些功能 classes 将被弃用。所以我试图用一种适用于所有选项的不同方法替换此方法 classes
- Firefox 选项
- Chrome 选项
- InternetExplorer 选项
- Safari 选项
- 边缘选项
我找不到上面提到的所有 classes 的通用对象类型,因此我可以创建一个与我使用 DesiredCapabilities 的方法类似的方法。
我想从这个新方法中 return 一个通用对象类型,以便我可以将它用于所有驱动程序初始化
例如
driver = new ChromeDriver(setOptions());
driver = new FirefoxDriver(setOptions());
您需要使用方法merge()
from MutableCapabilities Class将DesiredCapabilities类型的对象合并到ChromeOptions键入对象并通过传递 ChromeOptions 对象来启动 WebDriver 和 WebClient 实例,如下所示:
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
ChromeOptions options = new ChromeOptions();
options.merge(cap);
driver = new ChromeDriver(options);
您可以在
中找到详细的讨论
我之前使用 DesiredCapabilities class 创建了一个使用外部文件(key=value 格式)来设置浏览器所有功能的通用方法。这是我的代码
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;
}
我发现建议使用选项 classes,因为一些功能 classes 将被弃用。所以我试图用一种适用于所有选项的不同方法替换此方法 classes
- Firefox 选项
- Chrome 选项
- InternetExplorer 选项
- Safari 选项
- 边缘选项
我找不到上面提到的所有 classes 的通用对象类型,因此我可以创建一个与我使用 DesiredCapabilities 的方法类似的方法。
我想从这个新方法中 return 一个通用对象类型,以便我可以将它用于所有驱动程序初始化 例如
driver = new ChromeDriver(setOptions());
driver = new FirefoxDriver(setOptions());
您需要使用方法merge()
from MutableCapabilities Class将DesiredCapabilities类型的对象合并到ChromeOptions键入对象并通过传递 ChromeOptions 对象来启动 WebDriver 和 WebClient 实例,如下所示:
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
ChromeOptions options = new ChromeOptions();
options.merge(cap);
driver = new ChromeDriver(options);
您可以在