使用浏览器版本的webdriver

帕万拉茹

我正在尝试使用网络驱动程序中提供的功能并设置浏览器版本。我的chrome版本是32,但尝试在chrome 30中运行测试。

System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"/drivers/win/chromedriver.exe");

    DesiredCapabilities caps = DesiredCapabilities.chrome();
    caps.setCapability("version", "30");
    WebDriver wd = new ChromeDriver(caps);
    System.out.println(((RemoteWebDriver) wd).getCapabilities().getVersion());

当我打印浏览器版本时,其打印浏览器版本为32,但在功能上我将浏览器版本设置为30。我如何以正确的方式使用此功能。

Yi Zeng

不,你不能。由于您的测试是在装有Chrome 32的计算机上运行的,因此无法将其设置为Chrome 30,这仅仅是因为您没有Chrome 30。

DesiredCapabilities即使驱动程序不支持您请求的功能也不会引发错误,也不一定能创建带有的WebDriver实例这就是硒的设计方式。

有关更多信息DesiredCapabilities,请参见此问题我引用JimEvans的回答:

API指定将所需的功能传递到构造函数中。但是,可能是驱动程序不支持所需功能中要求的功能的情况。在那种情况下,驱动程序不会抛出任何错误,这是有意的。会话返回一个功能对象,该对象指示该会话实际支持的功能。

这就是这种情况下实际发生的情况。PhantomJS驱动程序不支持处理警报,返回的功能对象表明了同样的程度。在大多数语言绑定中,此返回的功能对象是只读的。在返回的对象可能是读写的语言绑定中,修改这些功能对会话没有实际影响。在未完成的W3C WebDriver规范中,有一个requiredCapabilities设置,如果服务器无法提供该功能,则会抛出异常,但据我所知,尚未由任何驱动程序实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

即使使用Webdriver-manager更新了驱动程序,由于版本问题,Chrome浏览器仍无法打开

使用Java使用Selenium WebDriver捕获浏览器日志

使用Selenium WebDriver Java绑定清除浏览器Cookies

使用Webdriver检查浏览器是否仍然打开

无法使用 selenium webdriver 启动 Chrome 浏览器

使用Selenium WebDriver运行TOR浏览器

无法使用 Selenium Webdriver 启动 IE 浏览器

正在使用的浏览器的最低版本

使用特定的WebGL / GLSL版本运行Web浏览器

ExtendedWebBrowser。使用浏览器的32位版本

查找SWT浏览器的浏览器类型/版本

Selenium - Maven - 可以更改 Selenium 配置以检测浏览器版本并自动下载 webdriver?

如何判断是否使用NSWindow浏览文档版本(版本浏览器UI的右侧)

Safari浏览器:Selenium Webdriver异常

在Webdriver中启动Chrome浏览器

SWT浏览器导航器版本

如何检测浏览器的版本?

Selenium 中的 Chrome 浏览器版本

构建Chromium浏览器的先前版本

Bootstrap 4浏览器支持版本

由于浏览器版本而重定向

如果浏览器版本早于

浏览器支持WebDriver还是WebDriver支持浏览器

如何在浏览器版本条件(IE 10及更高版本)中使用元标记?

使用带有 Watir 和 Webdriver 的 Ruby 强制浏览器加载

Python + WebDriver -- 使用 unittest 模块时未启动浏览器

无法使用 Selenium Webdriver 在浏览器中打开新选项卡

无法使用Selenium Webdriver在MAC上最大化Safari浏览器

使用Selenium Webdriver的IE浏览器:“驱动程序可执行文件是目录”