5

I'm working on building out a testing framework for some sites using selenium webdriver, and my goal is to have a number of drivers running the same tests concurrently (aka a firefoxdriver, an internetexplorerdriver, and a chromedriver all running at the same time with some shared resources). However, I'm having trouble with logging which driver is doing what. I'm passing the drivers through a lot of my code, but as far as I can tell a webdriver has no knowledge of what specific type of driver it is. Is there any way to ask a webdriver element what it was instantiated as?

iamthereplicant
  • 257
  • 1
  • 4
  • 13

3 Answers3

9

You can use instanceof like

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

For more details : What is the 'instanceof' operator used for?

Community
  • 1
  • 1
Ajinkya
  • 22,324
  • 33
  • 110
  • 161
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;
}
0

If using instanceof, be sure to also consider org.openqa.selenium.WrapsDriver so as to handle EventFiringWebDriver.

Jesse Glick
  • 24,539
  • 10
  • 90
  • 112