我正在尝试在做出某些决定后点击该元素。我必须遍历某些异步循环,然后我松开变量。不知道我能做些什么才能获得elt的价值。
这是我的代码
element.all(by.css('.top-bar li')).each(function(elt, index) {
elt.getText().then(function(text) {
if(index==0 && text=='logout'){
elt.click();
}
if(index==0 && text == 'My Account'){
elt.click();
}
});
});
所以elt.click给了我这个错误
Failed: stale element reference: element is not attached to the page document
(Session info: chrome=47.0.2526.106)
(Driver info: chromedriver=2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b),platform=Mac OS X 10.11.2 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 8 milliseconds
我做错了什么?
答案 0 :(得分:2)
在网站上可能存在
<li>
nay已注销或我的帐户作为其第一个元素的情况。如果它注销,那么我必须点击该元素。如果是我的帐户,那么我必须做一些不同的事情
我会获取第一个菜单项的文本,然后根据它的值来决定做什么:
var firstMenuItem = element.all(by.css('.top-bar li')).first();
firstMenuItem.getText().then(function (text) {
if (text === "Log Out") {
firstMenuItem.click(); // logging out
} elif (text === "My Account") {
// do smth else
} else {
// probably fail the test here
}
});