量角器等待元素进入 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.wait
与 presenceOf
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()});
我在使用 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.wait
与 presenceOf
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()});