我有一个量角器测试导航到另一个url,在我的测试环境中无法找到/解析,所以我检查标题是不是以前的标题。
测试如下:
it('should navigate to another site in case of click on cancel link', function () {
page.navigate();
page.submit();
protractor.getInstance().ignoreSynchronization = true;
browser.wait(function(){
return element(by.id('submit')).isPresent();
});
page.closePage();
// the title of a 404, dns issue etc is at least different from the previous site:
expect(browser.getTitle()).not.toEqual('MyDummyTitle')
protractor.getInstance().ignoreSynchronization = false;
});
这在大多数浏览器中都有效,但在Internet Explorer中,我发现当期望被触发时,它通常没有准备好导航到不存在的页面。
我能以某种方式等待提交'要消失的元素,类似于我在激活closePage之前所做的事情?
答案 0 :(得分:2)
在这种情况下我做的是active wait of an element to disappear:
使用自定义waitAbsent()辅助函数,通过变为不可见或不存在来主动等待元素消失。
该帮助程序等待specTimeoutMs
忽略无效的webdriver错误,例如StaleElementError
。
用法:在onPrepare块或文件中添加require('./waitAbsent.js');
。
等待#submit
消失的示例:
expect(element(by.id('submit')).waitAbsent()).toBeTruthy();