Comment ajouter des ExpectedConditions pour le Sélénium?
Je suis en train d'écrire mon propre ExpectedConditions pour le Sélénium, mais je ne sais pas comment faire pour en ajouter un nouveau. Quelqu'un aurait-il un exemple? Je ne trouve pas de tutoriels pour cette ligne.
Dans mon cas, je veux attendre jusqu'à ce qu'un élément existe, est visible, est activé ET n'a pas l'attribut "aria-désactivé". Je sais que ce code ne fonctionne pas:
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(seconds));
return wait.Until<IWebElement>((d) =>
{
return ExpectedConditions.ElementExists(locator)
&& ExpectedConditions.ElementIsVisible
&& d.FindElement(locator).Enabled
&& !d.FindElement(locator).GetAttribute("aria-disabled")
}
EDIT: UN petit complément d'info: le problème, je suis en cours d'exécution en est avec les onglets jQuery. J'ai un formulaire sur une désactivé onglet et il va commencer à remplir les champs de cet onglet avant de l'onglet devient actif.
OriginalL'auteur chill182 | 2014-01-24
Vous devez vous connecter pour publier un commentaire.
Une "condition attendue" est rien de plus qu'une méthode anonyme à l'aide d'une expression lambda. Ceux-ci sont devenus un aliment de base .NET développement depuis .NET 3.0, surtout avec la sortie de LINQ. Puisque la grande majorité des .NET les développeurs sont à l'aise avec le C# lambda de la syntaxe, de la WebDriver .NET bindings
ExpectedConditions
mise en œuvre a seulement quelques méthodes.La création d'une attente comme vous demandons ressemblerait à quelque chose comme ceci:
Si vous n'êtes pas expérimenté avec cette construction, je vous recommande de le devenir. Il est seulement susceptible de devenir de plus en plus répandus dans les futures versions de .NET.
Bien sûr. Édité pour corriger. Merci pour le tuyau.
Depuis cette réponse a été liée à quelques reprises dans l'IRC, je vous ferais également remarquer qu'il devrait être à l'aide d.FindElement, puisque c'est la variable lambda pour le conducteur
OriginalL'auteur JimEvans
Je comprends la théorie derrière
ExpectedConditions
(je pense), mais je trouve souvent lourdes et difficiles à utiliser en pratique.Je voudrais aller avec ce type de démarche:
Je serai heureux d'apprendre par une réponse qui utilise tous les
ExpectedConditions
ici 🙂C'est exact @user1925406
OriginalL'auteur Steve Weaver Crawford
J'ai converti un exemple de WebDriverWait et ExpectedCondition/s de Java vers C#.
Version de Java:
C# version:
OriginalL'auteur Alex Z