Les réponses à changer de fonction anonyme est la plus correcte. Ou écrivez votre propre classe de votre propre, de besoin, les conditions d'attente. Un exemple d'utilisation d'une fonction anonyme pour l'explicite scénario ci-dessus serait quelque chose comme...
var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
wait.IgnoreExceptionTypes(typeof(NoSuchElementException), typeof(ElementNotVisibleException));
var element = wait.Until(() =>
{
var e = Driver.FindElement(By.Id("content-section"));
if(e.Displayed)
return e;
});
Et à ce moment, la fonction elle-même pourrait être hors de sa propre dans une classe de votre solution que vous pouvez appeler. La bonne chose est que vous pouvez modifier au besoin; j'ai vu plusieurs cas où vraiment mal faite sites finissent par rompre la façon dont le ExpectedConditions de travail, et qui a été résolu avec l'équipe de l'écriture de notre propre fonction.
Comme par le C# contributeur:
À l'égard de ExpectedConditions, encore une fois, c'était un plus que
a été créé en .NET uniquement parce que "Java a elle." Au moment de la
ExpectedConditions classe en Java a été créé, la syntaxe pour la création d'
une fonction lambda (ou quelque chose qui a agi comme un seul) a été particulièrement
arcanes et difficile à comprendre. Dans ce cas, une classe d'assistance faite
beaucoup de sens pour le Java liaisons. Cependant, C# n'est pas Java. En C#,
la syntaxe pour la création d'lambda fonctions ("méthodes anonymes" dans le
langue de la documentation de Microsoft) a été bien compris par C#
les développeurs depuis de nombreuses années, et est un outil standard dans leur arsenal.
Dans ce cas, la question de code de verbosité ne possède certains avantages, mais
depuis les conditions d'attente sont rarement one-size-fits-all, il serait bien
nettoyeur approche pour les utilisateurs de développer leurs propres conditions de la classe qui
a l'attente des conditions qui les intéresse. Ceci, cependant, est
quelque chose que les utilisateurs ont de l'aversion pour. En outre, la pensée d'un
"standard" de la collection des implémentations spécifiques, les conditions d'attente
semble être une bonne idée sur son visage, mais il ya beaucoup de
variation sur la manière dont les utilisateurs veulent tout état de travailler. Avoir un
la collecte des conditions d'attente pourrait être une bonne chose, mais le Sélénium
le projet n'est pas le lieu pour cela.
http://jimevansmusic.blogspot.com/2018/03/deprecating-parts-of-seleniums-net.html