繁体   English   中英

如何在Selenium RemoteWebDriver中设置浏览器版本?

[英]How can I set the browser version in Selenium RemoteWebDriver?

当我使用HtmlUnitDriver我可以设置自己的browserVersion,例如:

private HtmlUnitDriver initDriver() {
    BrowserVersion browserVersion = new BrowserVersion(
            BROWSER_NAME,
            BROWSER_OS,
            USER_AGENT,
            Float.parseFloat(BROWSER_VERSION));
    browserVersion.setBrowserLanguage(BROWSER_LANGUAGE);
    browserVersion.setHtmlAcceptHeader(HTML_ACCEPT_HEADER);
    return new HtmlUnitDriver(browserVersion);
}

是否可以使用RemoteWebDriver进行相同的RemoteWebDriver

WebDriver driver = new RemoteWebDriver(
            new URL("http://localhost:4444/wd/hub"),
            myCapabilities);

Capabilities我可以设置myCapabilities.setBrowserName("htmlunit") 这就是我所能做的吗?

编辑

需要明确的是,我需要三件事:
a)Selenium服务器独立,以便能够重用相同的旧SessionID
b)使浏览器只能在控制台上运行(因此没有Firefox afaik)
c)发出与最新浏览器相同的http请求,因此服务器日志中没有差异。

您还可以设置很多参数,例如:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("firefox");
capabilities.setVersion("35.0");
capabilities.setPlatform(Platform.VISTA);

try {
    driver = new RemoteWebDriver(new URL("http://192.168.63.109:5555/wd/hub"), capabilities);
} catch (MalformedURLException e) {
    e.printStackTrace();
}

还有更多设置可以跳过使用自定义FirefoxProfile下载文件的对话框:

public static WebDriver setDriver() {

     FirefoxProfile fxProfile = new FirefoxProfile();

     fxProfile.setPreference("browser.download.folderList", 2);
     fxProfile.setPreference("browser.helperApps.alwaysAsk.force", false);
     fxProfile.setPreference("browser.download.manager.showWhenStarting", false);
     fxProfile.setPreference("browser.download.dir", dir);
     fxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.ms-excel," +
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

     return new FirefoxDriver(fxProfile);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM