在我的Angular应用程序中,当用户打开页面时,我们首先加载缓存内容,然后跟随异步调用服务器来轮询实际数据并更新页面。我试图访问已经显示的元素,但是由于页面内容被更新,该元素的指针已更改,即使该特定元素上没有实际更改。我尝试了不同的解决方案,但仍无法像我想要的那样稳定。我需要类似于try/catch块的东西,因为我不想使用browser.wait。
从描述中看起来...
这里有另一个示例,我尝试使用try/catch,但似乎做错了什么。我在try块中遇到了以下错误:
从描述中看起来...
browser.waitForAngular();
应该处理 $http 请求,但是它没有起作用。
这里是一段代码示例:
element(by.id('closeEditTagsModal')).click();
helper.waitElementToDisappear(element(by.css('body[class$="modal-open"]')));
element(by.id('myBookingsTab')).click();
helper.waitElementToDisappear(element(by.css('body[class$="loading"]')));
try {
(helper.waitElementToBeShown(element(by.repeater('b in currentbookings').row(0)).element(by.cssContainingText('.tagPill', 'TestTag')))).then(function() {
}, function(err) {
console.log('element was not found');
throw err;
});
}
catch (err) {
helper.waitElementToBeShown(element(by.repeater('b in currentbookings').row(0)).element(by.cssContainingText('.tagPill', 'TestTag')));
}
这里有另一个示例,我尝试使用try/catch,但似乎做错了什么。我在try块中遇到了以下错误:
我的帮助函数代码如下:StaleElementReferenceError: Element is no longer attached to the DOM
var waitElementToBeShown = function (elm) {
browser.wait(function () {
return elm.isPresent();
},10000);
browser.wait(function () {
return elm.isDisplayed();
},10000);
};
我正在尝试等待元素可供交互。