C# selenium等待直到方法返回true
我知道selenium webdriver可以做到这一点:C# selenium等待直到方法返回true,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我知道selenium webdriver可以做到这一点: var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.ClassName("someclass"))); 我不能用我的方法吗?例如,我有一个方法,它拍摄一个屏幕截图并与另一张图片进行比较。我想等到该方法返回true 所以我有这个密码 while
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.ClassName("someclass")));
我不能用我的方法吗?例如,我有一个方法,它拍摄一个屏幕截图并与另一张图片进行比较。我想等到该方法返回true
所以我有这个密码
while (WelcomeScreen(driver) != true)
{
Thread.Sleep(1000);
}
我找不到更好的解决方案吗?您可以使用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)
}
}
);
Wait Wait=new FluentWait(驱动程序)
.带超时(30,时间单位。秒)
.轮询间隔(5,时间单位。秒)
.忽略(NoSuchElementException.class);
wait.until(新函数(){
公共布尔应用(WebDriver驱动程序){
返回屏幕(驾驶员)
}
}
);
您可以使用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)
}
}
);
Wait Wait=new FluentWait(驱动程序)
.带超时(30,时间单位。秒)
.轮询间隔(5,时间单位。秒)
.忽略(NoSuchElementException.class);
wait.until(新函数(){
公共布尔应用(WebDriver驱动程序){
返回屏幕(驾驶员)
}
}
);
谢谢您的回答。c#中的等价代码是:wait.Until((x)=>{if(WelcomeScreen(driver))返回true;返回false;});是否可以传递该方法(在本例中为publicbooleanapply(WebDriver-driver){returnwelcomescreen(driver)}
作为一个参数?@HappyBird传递该方法是什么意思,它返回由WelcomeScreen
方法返回的值。您发布的代码,我喜欢这样。我想把它放在一个方法“WaitUntilTrue”中,对于这个方法,我想传递“WelcomeScreen(driver)”。我想我已经通过使用动作委托找到了答案()感谢您的回答。c#中的等效代码是:wait.Until((x)=>{if(WelcomeScreen(driver))返回true;返回false;});是否可以传递该方法(在这种情况下public Boolean apply(WebDriver driver){return WelcomeScreen(驱动程序)}
作为参数?@HappyBird传递方法是什么意思,它返回由WelcomeScreen
方法返回的值。您发布的代码,我喜欢。我想把它放在一个方法“WaitUntilTrue”中,对于这个方法,我想传递“WelcomeScreen(驱动程序)”.我想我已经通过使用Action delegate()找到了答案