【发布时间】:2016-03-25 06:32:03
【问题描述】:
我的代码如下,代码是通过xpath获取元素集,并生成一个list<String>,其中包含元素集中每个元素的文本。但是在将每个元素的文本添加到新的List<String>的过程中总是会抛出异常。
protected List<String> getHeaders(String path){
List<String> headers = new ArrayList<String>();
int count = 0;
List<WebElement> elements = findAllByXpath(path);
LOG.info("The length is : " + String.valueOf(elements.size()));
for (WebElement c: elements) {
LOG.info("->> " + String.valueOf(count));
count++;
headers.add(c.getText());
}
return headers;
}
结果是:
INFO com.xxx.test - The length is: 13
INFO com.xxx.test ->> 0
INFO com.xxx.test ->> 1
INFO com.xxx.test ->> 2
INFO com.xxx.test ->> 3
INFO com.xxx.test ->> 4
INFO com.xxx.test ->> 5
com.xxx.test -> getHeaders FAILED org.openqa.selenium.StableElementReferenceException:Element not found in the cache - perhaps the page has changed since it was looked up
在这种情况下有人可以帮忙吗?谢谢!
【问题讨论】:
-
在将元素的文本添加到新列表时,您能否确保“在缓存中找不到元素 - 页面可能在查找后发生了变化”,您的网页在这两者之间没有刷新?跨度>
-
嗨,Mrunal,感谢您的评论,实际上我猜页面在添加时会刷新。在这种情况下,您是否知道要获取 headers(List
) ?我想在一个一个添加元素的文本时,我无法通过 xpath 重新获取所有元素,所以这是与其他问题相比的区别,例如“在缓存中找不到元素 - 也许......”
标签: java selenium selenium-webdriver