可以通过 DesiredCapabilties 对象通过诸如“firefox”之类的浏览器名称来实例化 RemoteWebDriver。
但是如何使用浏览器名称获取本地驱动程序,例如“FireFoxDriver”?
我的用例如下:要测试的浏览器是通过外部文本文件中的属性指定的。使用另一个属性设置网格 url。如果网格 url 设置为“本地”,我想在文本文件中设置的浏览器上本地运行测试。
(这怎么可能?
我可以建议一个黑客。在本地计算机上启动 selenium-server,然后您可以使用 remotewebdriver 和主机 url 作为http://localhost:4444/wd/hub
.
这样您就可以使用相同的远程驱动程序和外部文本文件来控制本地机器上的测试。
当然。有什么阻碍吗?
public static void main(String[] args) {
WebDriver driver = openBrowser(args[0]);
// now work with driver as usual
}
public static WebDriver openBrowser(String browserName) {
if ((browserName == null) || (browserName.trim().isEmpty())) {
throw new IllegalArgumentException("No browser name found.");
}
// works with Java 7, on Java < 7, you have to write an if-else block instead
switch (browserName.toLowerCase()) {
case "ff": // fall through
case "firefox":
return new FirefoxDriver();
case "ie": // fall through
case "iexplore": // fall through
case "internet explorer":
return new InternetExplorerDriver();
default:
throw new IllegalArgumentException("No valid browser name found.");
}
}