量角器等待元素进入 DOM

Protractor waiting for element to be in DOM

我在使用 Protractor 时遇到了一些问题。我有一个非常奇怪的 ui-router 状态,很难离开其他元素来开始使用页面。有没有办法告诉量角器等到元素最终出现在 DOM 中?不是visible/displayed,而是实际创建的?我一直在尝试使用等待元素,但显然无法选择它。

browser.driver.wait(function () {
    return elem.isDisplayed();
});

Protractor 已包含 ExpectedCondition 显式等待功能,让您可以在特定时间段内等待元素。您应该能够执行以下操作:

var EC = protractor.ExpectedConditions;

browser.driver.wait(function () {
    browser.wait(EC.visibilityOf(elem), 10000);
    return elem;
});

您应该可以将 browser.waitpresenceOf ExpectedCondition:

一起使用
var until = protractor.ExpectedConditions;
browser.wait(until.presenceOf(elem), 5000, 'Element taking too long to appear in the DOM');

browser.wait的第一个参数是一个函数,如果我们需要等待一个元素出现而不考虑时间,那么我们可以使用下面的代码,如果您需要将等待限制为特定的time 请给时间作为 'browser.wait'

的第二个参数
browser.wait(function() {
    return element(by.css("#edudrop1")).isPresent()});