【发布时间】:2016-04-16 09:41:39
【问题描述】:
我创建了这个步骤定义来检查网页中是否存在给定的文本。该代码可以正常工作,但有时,特别是当我查找长文本时,即使页面中存在该文本,我也会收到错误。
代码是这样的:
this.Then(/^The text "([^"]*)" exists in page$/, function(myText, callback){
browser.sleep(10000);
var selectedElement = element(by.xpath("//*[. = '" + myText + "']"));
expect(selectedElement.isPresent()).to.eventually.equal(true, "This text is not present in page").and.notify(callback);
});
基本上我会做三件事:
- 我等待 10 秒以确保 DOM 的所有元素都已加载。
- 我搜索包含我要查找的文本的元素(div、p、标签或其他)。
- 我检查该元素是否存在,否则我会收到错误消息。
你能告诉我是否有更好的方法来做到这一点?在步骤定义的开头使用 browser.sleep() 等待 DOM 加载是否正确?
重要提示:我没有使用 Angularjs
提前谢谢你。
【问题讨论】:
标签: javascript testing protractor