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

时间:2015-05-14 13:37:58

标签: java selenium-webdriver

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

3 个答案:

答案 0 :(得分:8)

您可以使用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 

有关详情:What is the 'instanceof' operator used for?

答案 1 :(得分:0)

/******************************************************************************************
 * 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;
}

答案 2 :(得分:0)

如果使用instanceof,请务必同时考虑org.openqa.selenium.WrapsDriver以便处理EventFiringWebDriver