Wait.Until(预期条件)有时会失败Selenium c#

时间:2015-08-26 08:03:24

标签: selenium selenium-webdriver selenium-rc selenium-chromedriver

我知道Thread.Sleep()可能不是等待元素显示,可点击等最可靠的方式...... 因此,我一直在使用Wait.Until(Expected.Conditions)方法告诉selenium webdriver等待元素满足所需条件。

看来问题是,Selenium有时候会失败,等待元素显示,可点击等等......即使webDriverWait设置为等待15秒,Selenium也会匆忙而失败,因此我没有得到任何错误,我的测试通过代码明智,但实际元素被点击太早,无法响应点击。有没有100%可靠的方法可以在没有错误的情况下等待元素可点击?

CODE:

 //This is how I instantiate WebDriverWait
 public static readonly WebDriverWait Wait = new WebDriverWait(Program.Driver, TimeSpan.FromSeconds(15));

 //This is an example how I get and click on specific HTML element
 Wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//img[contains(@src, 'logo')]"))).Click();

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以使用此功能,然后等待并找到元素....这对我来说总能

public static void scrollToElement(final WebDriver webDriver, final Point location)
{
    System.out.println("Scrolling to :" +location.x +"," +location.y);
    final String sScript = "javascript:window.scrollBy("+location.x+","+location.y+")";
    final JavascriptExecutor js = (JavascriptExecutor) webDriver;
    js.executeScript(sScript);
}