确定Java中Selenium驱动程序的类型



我正在为一些使用selenium webdriver的站点构建一个测试框架,我的目标是让多个驱动程序并发地运行相同的测试(又名firefoxdriver, internetexplorerdriver和chromedriver),并同时运行一些共享资源。然而,我在记录哪个驱动程序正在做什么时遇到了麻烦。我通过很多代码传递驱动程序,但据我所知,web驱动程序不知道它是什么特定类型的驱动程序。有没有办法问一个webdriver元素它被实例化为什么?

您可以使用instanceof

  if( driver instanceof FirefoxDriver) {
    System.out.println("Firefox it is!!");
  }
  else if( driver instanceof ChromeDriver) {
    System.out.println("Chrome it is!!");
  }
  // and so on 

查看详细信息:'instanceof'操作符用于?

/******************************************************************************************
 * Name: getBrowserDetails | Description: Gets Browser Name and Version
 ******************************************************************************************/
public String getBrowserDetails() throws Exception {
    Capabilities caps = ((RemoteWebDriver)BaseTest.driver).getCapabilities();
    String browserName = caps.getBrowserName();
    String browserVersion = caps.getVersion();
    String browser = (browserName + " " + browserVersion).toUpperCase();
    return browser;
}

如果使用instanceof,一定要考虑org.openqa.selenium.WrapsDriver,以便处理EventFiringWebDriver

相关内容

最新更新