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

如何解决StaleElementReferenceError:在JavaScript的缓存中找不到元素?,javascript,selenium,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 <

我正在使用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);
       }
});
browser.findelelements(by.xpath(“//a[@title='runtestsuite']”)。然后(函数(所有测试){
//控制台日志(所有测试长度);
对于(变量i=0;i

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

使用索引点击
xpath
,如
browser.findElement(by.xpath(“//a[@title='runtestsuite']][i]”)。单击()

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


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

我建议您花一些时间了解什么是过时的元素引用。这对于学习如何解决问题至关重要。可能会重复