如何使用Selenium WebDriver和Java获取浏览器名称?

我有一个测试用例,需要根据浏览器名称即IE或Chrome执行。 在此测试用例中,某些部分将取决于浏览器类型。

如何在执行之间获取浏览器名称? 例如,如果是IE,我需要传递数据。 如果是Chrome浏览器,我需要选择数据。

您可以使用以下代码来了解浏览器名称,版本和操作系统详细信息: –

Capabilities cap = ((RemoteWebDriver) driver).getCapabilities(); String browserName = cap.getBrowserName().toLowerCase(); System.out.println(browserName); String os = cap.getPlatform().toString(); System.out.println(os); String v = cap.getVersion().toString(); System.out.println(v); 

您需要导入的包

 import org.openqa.selenium.Capabilities; import org.openqa.selenium.remote.RemoteWebDriver; 

希望它能帮到你:)

在Python中,您可以像这样访问driver.capabilities dict

 driver.capabilities['browserName'] 

https://groups.google.com/forum/#!topic/selenium-users/nbSujBSc6q8

您是测试人员,因此您需要编写代码/脚本来明确测试各种浏览器/版本组合及其各种细微差别和细微之处(同时尝试尽可能多地重用逻辑,尽量减少重复等)

WebDriver的本质是 ,测试人员正在开车 – 而不是浏览器。 不要试图检测东西。

因此,对于IE和Chrome,您有不同的行为,您应该为每个(在不同的@Test )显式创建一个WebDriver实例,并根据需要设置所需的数据(同样属性, Capabilities等)。

通过各种方式在测试之间共享公共查找代码,但是直到您的测试很稳健并且工作正常,您不应该尝试重构它们。