Selenium - 如何通过浏览器名称获取本地WebDriver

时间:2012-07-20 13:38:50

标签: selenium webdriver

可以通过DesiredCapabilties对象通过浏览器名称“firefox”实例化RemoteWebDriver。

但是如何使用浏览器名称获取像“FireFoxDriver”这样的本地驱动程序?

我的用例如下:要测试的浏览器是通过外部文本文件中的属性指定的。使用另一个属性设置网格URL。如果grid url设置为“local”,我想在文本文件中设置的浏览器上运行本地测试。

(怎么样)这可能吗?

2 个答案:

答案 0 :(得分:1)

不确定。有什么阻碍这个吗?

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.");
    }
}

答案 1 :(得分:1)

我可以建议一个黑客。在本地计算机上启动selenium-server,然后您可以将remotewebdriver与主机URL一起用作http://localhost:4444/wd/hub

这样您就可以使用相同的远程驱动程序和外部文本文件来控制本地计算机上的测试。