【发布时间】:2017-09-21 20:17:39
【问题描述】:
我打算通过在多个 Web 浏览器中使用 selenium 来执行一些测试。为了区分不同的 Web 驱动程序,我使用以下代码行:
((RemoteWebDriver) driver).getCapabilities().getBrowserName();
这将返回一个字符串,指示 driver 对象使用的 Web 浏览器。但是,对于我的 Opera WebDriver 对象,这会给我字符串“chrome”。我尝试通过使用 DesiredCapabilities 将浏览器名称显式设置为“opera”来更改此设置:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("opera");
WebDriver driver = new OperaDriver(capabilities);
很遗憾,这并不能解决我的问题。如何有效地更改网络浏览器名称?
【问题讨论】:
-
你不能这样做。它由特定浏览器的驱动程序设置,您的代码无法写入。所以你需要一些其他的方式来存储这些信息并调用它
-
我认为@TarunLalwani 是对的
-
我确实必须以另一种方式存储它。谢谢!
-
你能用你的确切代码更新问题吗?我很感兴趣你在哪个阶段打电话给
getCapabilities().getBrowserName();。 -
另见 Webdriver 的 Github 和第 1459 期,Method to change User Agent string。