code: public WebElement findExpectedFirstMatchedElement(int timeoutInSeconds, By... bys) {
  		waitForLoaders();
  		StringBuilder potentialMatches = new StringBuilder();
  		for (By by : bys) {
  			try {
  				if (potentialMatches.length() > 0) {
  					potentialMatches.append(", ");
  				}
  				potentialMatches.append(by.toString());
  				WebElement found = new WebDriverWait(getWebDriver(), timeoutInSeconds).until(ExpectedConditions
  						.presenceOfElementLocated(by));
  				if (found != null) {
  					return found;
  				}
  			} catch (WebDriverException nsee) {
  				// keep checking
  			}
  		}
  		fail("No matches found for: " + potentialMatches.toString());
  		return null;
  	}
docs: From the passed array of {@link By}'s return the first {@link WebElement}
  found. The {@link By}'s will be processed in the order that they are
  passed in. If no element matches any of the {@link By}'s an
  {@link AssertionError} is thrown causing a test method calling this
  method to fail.
  
  @param timeoutInSeconds
  timeout to wait for elements to be found
  @param bys
  - array of {@link By}
  @return The first {@link WebElement} found
  @throws AssertionError
  if no {@link WebElement} is found or the search times out