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

问题描述 投票:3回答:1

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

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

码:

 //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();

任何建议,将不胜感激!

selenium selenium-webdriver selenium-rc selenium-chromedriver
1个回答
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);
}
© www.soinside.com 2019 - 2024. All rights reserved.