私のコードは次のようになります。コードはxpath経由で要素を取得し、各要素のテキストをlist<String>
要素集合内にある。しかし、各要素のテキストを新しいList<String>
に追加するプロセスでは常に例外がスローされます。StableElementReferenceException:キャッシュ内に要素が見つかりません - ページが参照されてから変更されている可能性があります
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
誰かが、この場合に役立つことはできますか?ありがとう!
缶のyを試してみてくださいあなたのWebページが新しいリストに要素のテキストを追加している間にWebページが更新されていないことを確認してください。 –
こんにちはMrunal、コメントありがとう、実際に私はページが追加中に更新されていると思います。この場合、ヘッダー(List)を取得するためにとにかく知っていますか?私は要素のテキストを1つずつ追加するときにxpathですべての要素を取り戻すことはできないと思うので、これは「要素がキャッシュにない - おそらく...」のような他の問題と比較して違いです –