Ответ 1
Вы можете использовать browser.wait
вместе с presenceOf
ExpectedCondition:
var until = protractor.ExpectedConditions;
browser.wait(until.presenceOf(elem), 5000, 'Element taking too long to appear in the DOM');
У меня были проблемы с использованием Protractor. У меня действительно странное состояние ui-router, где трудно уйти от других элементов, чтобы начать работу со страницей. Есть ли способ сказать транспортиру, чтобы подождать, пока элемент не появится в DOM? Не отображается/отображается, но фактически создается? Я продолжаю пытаться использовать wait для элемента, но он явно недоступен для выбора.
browser.driver.wait(function () {
return elem.isDisplayed();
});
Вы можете использовать browser.wait
вместе с presenceOf
ExpectedCondition:
var until = protractor.ExpectedConditions;
browser.wait(until.presenceOf(elem), 5000, 'Element taking too long to appear in the DOM');
Транспортир включил ExpectedCondition для явного ожидания, которое позволяет вам ждать элемент в течение определенного периода времени. Вы должны быть в состоянии сделать следующее:
var EC = protractor.ExpectedConditions;
browser.driver.wait(function () {
browser.wait(EC.visibilityOf(elem), 10000);
return elem;
});
первый параметр browser.wait - это функция, если нам нужно подождать, пока элемент не будет присутствовать независимо от времени, тогда мы можем использовать приведенный ниже код. Если вам нужно ограничить время ожидания до определенного времени, пожалуйста, дайте время как второй параметр "browser.wait"
browser.wait(function() {
return element(by.css("#edudrop1")).isPresent()});