我知道selenium webdriver可以做到这一点:
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.ClassName("someclass")));
我的方法不能这样做吗?例如,我有一个方法,它截取屏幕截图并与另一张图片进行比较。我想等到该方法返回true。
所以我有这个代码
while (WelcomeScreen(driver) != true)
{
Thread.Sleep(1000);
}
我找不到更好的解决方案了?
答案 0 :(得分:4)
你可以使用 FluentWait ,我不熟悉C#所以下面的代码示例是在Java中。如果你可以将它转换为C#,我认为它可能会有效。
Wait wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
wait.until(new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver driver) {
return WelcomeScreen(driver)
}
}
);