title: Expected condition failed: waiting for visibility of element located by By.xpath
body: <p>I am trying to click on Sign in link on site alibaba.com</p>
  
  <p>This is my test case:</p>
  
  <pre><code>public class TestCase {
  
      public static void main(String[] args) throws InterruptedException {
          // TODO Auto-generated method stub
  
          String URL = "http://www.alibaba.com/";
          WebDriver driver;
          System.setProperty("webdriver.chrome.driver",
                  "D:\\chromedriver_win32\\chromedriver.exe");
          driver = new ChromeDriver();
          driver.get(URL);
          Thread.sleep(2000);
          SignIn.SignIn_click(driver).click();
      }
  
  }
  </code></pre>
  
  <p>This is object class where in am locating the web element</p>
  
  <pre><code>package PageObjects;
  import org.openqa.selenium.By;
  import org.openqa.selenium.WebDriver;
  import org.openqa.selenium.WebElement;
  import org.openqa.selenium.support.ui.ExpectedConditions;
  import org.openqa.selenium.support.ui.WebDriverWait;
  
  public class SignIn {
  
  
      private static WebElement element = null;
  
      public static WebElement SignIn_click(WebDriver driver) {
          element = (new WebDriverWait(driver, 10)).until(ExpectedConditions
                  .visibilityOfElementLocated(By
                          .xpath("//a[@data-val='ma_signin']")));
          element = driver.findElement(By
                  .xpath("//a[@data-val='ma_signin']"));
          return element;
  
      }
  
  }
  </code></pre>
  
  <p>But when I run this code , I'm always getting this exception:</p>
  
  <pre><code>Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of element located by By.xpath: //a[@data-val='ma_signin'] (tried for 10 second(s) with 500 MILLISECONDS interval)
      Build info: version: 'unknown', revision: '86a5d70', time: '2017-02-16 07:47:51 -0800'
      System info: host: 'ANUM-PC', ip: '172.16.11.162', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_121'
      Driver info: org.openqa.selenium.chrome.ChromeDriver
      Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41), userDataDir=C:\Users\Anum\AppData\Local\Temp\scoped_dir1716_14873}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=59.0.3071.115, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}]
      Session ID: d0c1083c113270bd4ded08846544878e
          at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:80)
          at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:257)
          at PageObjects.SignIn.SignIn_click(SignIn.java:15)
          at AutomationFramework.TestCase.main(TestCase.java:24)
  </code></pre>
  
  <p>Please help me on this.</p>