Ich verwende derzeit Selenium , um auf Dinge zu warten, wo ich die IWebDriver
Funktionalität nicht brauche. Mein Code sieht wie folgt aus:Wie warte ich darauf, dass ein Delegat einen bestimmten Wert zurückgibt?
public static T WaitForNotNull<T>(this IWebDriver driver, Func<T> func)
{
var result = default(T);
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(d => (result = func()) != null);
return result;
}
public static void WaitForNull<T>(this IWebDriver driver, Func<T> func)
{
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(d => func() == null);
}
Gibt es ein ähnliches Konstrukt in .Net, die ich anstelle von WebDriverWait verwenden kann?
Suchen Sie nach synchroner Wartezeit oder asynchroner Wartezeit? Für synchrone könnten Sie [Task.Wait] (https://msdn.microsoft.com/en-us/library/dd235635 (v = vs.110) .aspx) für asynchrone Sie haben die async und erwarten Schlüsselwörter –
Ja, es heißt eine "while" -Schleife. Siehst du irgendein Problem damit? – nvoigt
schauen Sie sich einfach den dekompilierten Code der Until-Methode an und machen Sie das gleiche –