如何使用量角器导航到网页上的每个链接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用量角器导航到网页上的每个链接相关的知识,希望对你有一定的参考价值。
Html code for this questionI已经收集了我想要的所有链接的计数(使用'then'而不是每个)但是当我尝试点击它们时我得到“失败:陈旧元素引用:元素未附加到页面文档” 。这是我的代码:
verifylinks() {
var alllinks = element(by.css('div.unity'))
var links = alllinks.all(by.tagname("a"));
number.each(function (items){
items.click();
//I will be validating something here
browser.navigate().back;
}
}
这适用于其他一些堆栈溢出的人,但我试图做同样的事情并抛出错误。请有人帮我这个吗?
答案
单击链接进入另一个页面,即使您导航回来,但Selenium会将返回页面视为一个新页面,它与您找到所有链接的页面不同。
因此,当点击从新页面上的旧页面找到的下一个链接时,Selenium检测到链接不是来自新页面并抛出stale element reference
异常。
要解决此问题,您需要在新页面上再次找到该链接。
verifylinks() {
var alllinks = element.all(by.css('div.unity a'));
browser.sleep(15000); // just for debug purpose to wait page loading.
alllinks.count().then(function(length) {
console.log('link amount: ' + length);
for(let i=0;i<length;i++) {
alllinks.get(i).click();
// validate something here
browser.navigate().back();
browser.sleep(5000);
// sleep for short time to wait page load for debug purpose,
// recommend change to browser.wait()
}
})
}
另一答案
links=element.all(by.css('div>h3>a'));
由于错误,很明显问题出在定位器上
以上是关于如何使用量角器导航到网页上的每个链接的主要内容,如果未能解决你的问题,请参考以下文章