失败:过时的元素引用:元素未附加到页面文档
我尝试在for循环的每次迭代中获取元素,但是for循环在第一次解析promise之前执行,这意味着x的“limit”值被重复传递,测试只是在同一个下拉选项上单击几次。
this.uncheckColumns = function(limit) {
element(by.className('fa-cog')).click();
element.all(by.className('multiSelectLi')).then(function(options) {
for (x = 1; x < limit; x++) {
options[x].click();
};
});
};
使用each(元素,索引)
:
element.all(by.className('multiSelectLi')).each(function(option, index) {
if (index < limit) {
option.click();
}
});
或者,结合筛选器(元素,索引)
:
element.all(by.className('multiSelectLi')).filter(function(option, index) {
return index < limit;
}).each(function(option) {
option.click();
});
还有一种解决问题的简单方法(在循环中连续调用element.all()
):
for (var index = 0; index < limit; index++) {
var option = element.all(by.className('multiSelectLi')).get(index);
option.click();
};
这是HTML结构如下所示 错误跟踪为:
我在我的selenium java项目中不断收到一条错误消息。
我正在尝试读取联系人页面中的数据,但遇到此异常。
我试图理解为什么在我试图显示从网站获取的项目时会出现错误。我也在使用谷歌chrome浏览器。 这是我代码的其他部分 每当我使用"chromeDriver.FindElement(By.ID(something.link.text))。单击();",它会给出一个错误。我不能显示我提取的数据。 在错误消息中,它显示“OpenQA.Selenium.StaleElementReferenceExcept
我的超文本标记语言-Page包含(除其他内容外)以下内容: 在测试页面的代码中,我将执行以下操作: 这个和 然而,这个错误似乎并不合理,因为元素仍然是活动的: 我如何解决这个问题? (环境是APL。我在这里省略了一些APL细节,因为我担心它们可能会避免从核心问题上“分散注意力”) 在发帖前的研究过程中,我看到了一个问题:元素未附加到页面文档,但似乎不适用: 如图所示,我正在执行,并在找到它后立即访