Conditions prévues au rapporteur
Lors de l'écriture de sélénium tests en Python, je suis habitué à utiliser Explicite Attend beaucoup pour l'attente d'une page à charger, ou pour l'attente d'un élément pour devenir visible, ou de cliquer, etc:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
Le concept clé ici est de fournir une Condition Attendue attendre, il y a plusieurs types:
L'aide Attendue des Conditions rend le code plus propre et plus fiable comparant à l'aide de sleep
s avec codé en dur intervalles de temps.
Maintenant, nous sommes de commutation de fin à la fin de l'infrastructure de tests pour protractor
beaucoup.
Sont là similaire Expected Conditions
au rapporteur qu'il y a dans python-sélénium
ou
java-sélénium
? Si non, quelle est la manière canonique explicitement attendre une condition dans protractor
?
j'ai regardé à travers le rapporteur de la documentation et n'a rien trouvé à ce sujet.
- Est-ce que vous souhaitez? github.com/angular/protractor/pull/1703
- seulement si la construction ne manquerait pas 🙂 Blague à, exactement, super génial! Si vous avez le temps - s'il vous plaît poster une réponse au sujet de la fonctionnalité ici, si ce n'est pas que je peux le faire istead, lmk. Merci!!!!
Vous devez vous connecter pour publier un commentaire.
Une fois exploit(expectedConditions) est (probablement rapporteur 1.7), vous pouvez le faire:
Veuillez noter que, si vous travaillez avec un Angulaires application et votre test nécessite conditionnelle attend, c'est un grand drapeau rouge pour ce que vous faites, en tant que rapporteur doit gérer attend nativement.
browser.wait(//protractor.ExpectedConditions)
est nécessaire lorsqu'une action déclenche un non-Angulaire async task, comme une pleine page à charger. C'est peut-être aussi (seulement?) requis quand il déclenche un changement d'itinéraire.Au Rapporteur, vous pouvez utiliser
navigateur.attendre(fn, délai d'attente)
.Exemple:
Peut-être vous aider, attendez élément de visibilité dans les DOM.