iamthereplicant
iamthereplicant

Reputation: 232

Determine Type of Selenium Driver in Java

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?

Upvotes: 5

Views: 5546

Answers (3)

Jesse Glick
Jesse Glick

Reputation: 25481

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

Upvotes: 0

Vasudev Reddy
Vasudev Reddy

Reputation: 33

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

Upvotes: 0

Ajinkya
Ajinkya

Reputation: 22720

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?

Upvotes: 9

Related Questions