如何解决StaleElementReferenceError:JavaScript中的缓存中找不到元素?

时间:2017-06-29 16:45:02

标签: javascript selenium

我使用的是Selenium 2.53.1。我试图选择几个具有相同xpath的元素,但我不断得到陈旧的元素引用错误。我在其他帖子中读到添加等待会起作用,但我仍然会收到此错误。

browser.findElements(by.xpath("//a[@title='Run Test Suite']")).then(function(all_tests){
       // console.log(all_tests.length);
       for (var i = 0; i < all_tests.length; i++) {
           console.log(all_tests.length);
           all_tests[i].click();
           // browser.manage().timeouts().implicitlyWait(300000);
           browser.findElements(by.xpath("//a[@title='Run Test Suite']"));
           console.log("got to my wait");
           browser.manage().timeouts().implicitlyWait(10000);
       }
});

你对我做错了什么有任何建议吗?

1 个答案:

答案 0 :(得分:0)

使用索引点击xpath,例如
   browser.findElement(by.xpath("//a[@title='Run Test Suite'][i]")).click();

请注意,我使用findElement而没有最后s,因为我只想找到一个。

如果以这种方式使用索引不起作用,那么你需要找到一个共同的父,这个索引将适用于同一级别的元素。