1

Conditions expected of the rapporteur

 2 years ago
source link: https://www.codesd.com/item/conditions-expected-of-the-rapporteur.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Conditions expected of the rapporteur

advertisements

While writing selenium tests in Python, I got used to using Explicit Waits a lot for waiting for a page to load, or for waiting for an element to become visible, or clickable 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"))
)

The key concept here is providing an Expected Condition to wait for, there are multiple types:

Using Expected Conditions makes the code cleaner and more reliable comparing to using sleeps with hardcoded time intervals.

Now, we are switching our end-to-end testing infrastructure to protractor a lot.

Are there similar Expected Conditions in protractor as there are in python-selenium or java-selenium? If not, what is the canonical way to explicitly wait for a condition in protractor?

I've looked through protractor documentation and found nothing about it.


Once feat(expectedConditions) is in (probably protractor 1.7), you can do:

var EC = protractor.ExpectedConditions;
var e = element(by.id('xyz'));
browser.wait(EC.presenceOf(e), 10000);
expect(e.isPresent()).toBeTruthy();

Please note though, if you're working with an Angular app and your test requires these conditional waits, it's a big red flag for what you're doing, as protractor should handle waits natively.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK