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

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

我正在使用selenium webdriver为一些站点构建一个测试框架,我的目标是让多个驱动程序同时运行相同的测试(也就是firefoxdriver、internetexplorerdriver和chromedriver,它们都使用一些共享资源同时运行)。但是,我在记录哪个驱动程序正在做什么时遇到了问题。我正在通过我的很多代码传递驱动程序,但据我所知,webdriver不知道它是什么特定类型的驱动程序。有没有办法询问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 

更多细节:

如果使用<代码>实例,请务必考虑<代码> Or.OpenQa.硒。WrassReals<代码>,以便处理<代码>事件处理WebReals>代码> < /P>哦,我的上帝。头撞在桌子上。谢谢。如果我们的测试是使用RemoteWebDriver远程执行的,该怎么办?@san1deep2set3hi使用

功能。getBrowserName()
我们可以描述一下这是如何回答问题的吗?这会返回浏览器名,根据浏览器名我们可以决定它是什么类型的驱动程序
/******************************************************************************************
 * 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;
}