Two useful methods for finding elements with generic locator strings

  
public WebElement findElement(String identifier) {
    WebElement el = null;
    try {
      if (identifier.indexOf("//") > -1) {
        el = driver.findElement(By.xpath(identifier));
      } else if (identifier.indexOf("link=") > -1) {
        String linkText = identifier.split("=")[1];
        el = driver.findElement(By.linkText(linkText));
      } else if (identifier.indexOf("$") > -1) {
        el = getWebElementFromJquery(identifier);
      } else if (identifier.indexOf(">") > -1 || identifier.indexOf(".") > -1) {
        el = driver.findElement(By.cssSelector(identifier));
      } else {
        el = driver.findElement(By.id(identifier));
      }
    } catch (Exception e) {
      logger.error("findElement() " + e.getMessage());
    }
    return el;
  }
 
  public List findElements(String identifier) {
    List el = null;
    try {
      if (identifier.indexOf("//") > -1) {
        el = driver.findElements(By.xpath(identifier));
      } else if (identifier.indexOf("link=") > -1) {
        String linkText = identifier.split("=")[1];
        el = (List) driver.findElements(By.linkText(linkText));
      } else {
        el = driver.findElements(By.id(identifier));
      }
    } catch (Exception e) {
      logger.error("findElements() " + e.getMessage());
    }
    return el;
  }


Leave a comment

Learnings in Webdriver using C#.Net

Webdriver Tips and Techniques

The Automation Tester

My experiance with test automation

Learn WebDriver

This WordPress.com site is the cat’s pajamas

Assert Selenium

Selenium Automation in a Right Way