Недавно я опубликовал вопрос о проблеме, которую я проверяю белым приложением на основе углов (ссылка: , дождитесь, пока Angular закончит загрузку )
Оказывается, что выполненная проверка действительна для угловых приложений 1.x, в то время как наше приложение работает на угловых 6.x.
Затем я обнаружил, что сообщение: Обнаружение того, что Angular 2 завершен, работает
, который объясняет, как выполнить аналогичную проверку, но для угловых приложений 2+. Я настроил проверку таким же образом, как объяснил «Михал Филип».
Я также пытался использовать решение ngWebdriver, предложенное ниже в этом посте.
Обе страдают одной и той же проблемой: проверка всегда будет возвращать true, как и при завершенной загрузке, что не соответствует действительности.
пытался отменить проверку, это не помогло (состояние никогда не менялось)
// Will check if Angular still has pending http_requests ongoing and wait if required
public void untilAngular2HasFinishedProcessing()
{
until(() ->
{
log.info("Waiting on angular 2+ to finish processing");
final boolean isReady = ((JavascriptExecutor) driver).executeAsyncScript(
"var callback = arguments[arguments.length - 1];" +
"if (document.readyState !== 'complete') {" +
" callback('document not ready');" +
"} else {" +
" try {" +
" var testabilities = window.getAllAngularTestabilities();" +
" var count = testabilities.length;" +
" var decrement = function() {" +
" count--;" +
" if (count === 0) {" +
" callback('complete');" +
" }" +
" };" +
" testabilities.forEach(function(testability) {" +
" testability.whenStable(decrement);" +
" });" +
" } catch (err) {" +
" callback(err.message);" +
" }" +
"}"
).toString().equals("complete");
log.info("Is angular 2+ ready? " + isReady);
return isReady;
}
);
}
// sample call would be
untilAngular2HasFinishedProcessing();
Ожидается: тест будет ждать, пока Angular завершит загрузку, прежде чем вернет true
Actual: возвращает true с самого начала, что, я знаю, не так.
Возможен ли дубликат? Нет, потому что это проблемный вопрос, основанный на реализации, предложенной в связанном вопросе.