Java Selenium webdriver等待,元素不可单击异常

Java Selenium webdriver等待,元素不可单击异常,java,selenium-webdriver,selenium-chromedriver,Java,Selenium Webdriver,Selenium Chromedriver,我正在为chrome使用SeleniumWebDriver。 我正在测试一个包含大量ajax内容的web应用程序,因此在登录到该应用程序后,需要几秒钟才能在主页中加载ajax内容 我使用显式wait after login来等待,直到找到元素。但它大多失败了。我已经给了25秒的等待时间,但在等待4秒后失败了。 错误是 Unknown error: Element <a href="/ls/create_new" class="ajax addDashButton hasLink">.

我正在为chrome使用SeleniumWebDriver。 我正在测试一个包含大量ajax内容的web应用程序,因此在登录到该应用程序后,需要几秒钟才能在主页中加载ajax内容

我使用显式wait after login来等待,直到找到元素。但它大多失败了。我已经给了25秒的等待时间,但在等待4秒后失败了。 错误是

Unknown error: Element <a href="/ls/create_new" class="ajax addDashButton hasLink">...</a> is not clickable at point (144, 223). 

这只是我代码的一部分..使用webdriver wait的正确方法是什么。TY

在使用已定位元素的显示时,请尝试一次已定位元素的可见性

  • 元素位置的可见性:它检查元素是否应该可见和存在
  • presenceOfElementLocated:它只检查元素是否存在于DOM中
有关更多信息,请查看以下链接-

在使用已定位元素的显示时,请尝试一次已定位元素的可见性

  • 元素位置的可见性:它检查元素是否应该可见和存在
  • presenceOfElementLocated:它只检查元素是否存在于DOM中
有关更多信息,请查看以下链接-

我认为它能够找到元素,只是它找到的元素在您尝试时无法单击。这就是日志所读的内容。你能分享你的网站url吗?url是demo.vizru.com我认为它能够找到元素,只是它找到的元素在你尝试时不可点击。日志上就是这么写的。你能分享一下你的网站网址吗?网址是demo.vizru.com是的。。现在它似乎起作用了,谢谢。我还有一个疑问。。我可以声明webdriver等待时间在所有测试用例中都是通用的吗。如何在父类中使用(WebDriverWait wait=newwebdriverwait(driver,25);)此方法,以便所有子类都可以访问。我是新手,回答很好@imBollaveni@JithinEzio在父类中将wait和driver声明为静态变量。这样你就可以在所有的子类中使用它们。Ex:静态WebDriver;静态WebDriverWait等待;对现在它似乎起作用了,谢谢。我还有一个疑问。。我可以声明webdriver等待时间在所有测试用例中都是通用的吗。如何在父类中使用(WebDriverWait wait=newwebdriverwait(driver,25);)此方法,以便所有子类都可以访问。我是新手,回答很好@imBollaveni@JithinEzio在父类中将wait和driver声明为静态变量。这样你就可以在所有的子类中使用它们。Ex:静态WebDriver;静态WebDriverWait等待;
public class login {
    WebDriver driver;

  @Test
  public void f() {

      System.setProperty("webdriver.chrome.driver", "filepath/chromedriver");
      driver = new ChromeDriver();
  driver.get("URL");
  driver.manage().window().maximize();

      driver.findElement(By.name("username")).sendKeys("username");
      driver.findElement(By.name("password")).sendKeys("password");
      driver.findElement(By.className("login")).click();

      WebDriverWait wait = new WebDriverWait(driver, 25);

      wait.until(ExpectedConditions.presenceOfElementLocated(By.linkText("Create New App")));
      driver.findElement(By.linkText("Create New App")).click();
  }
}