我正在尝试根据列数据访问某一行,然后单击该行中的链接。我如何实现这一目标?我已经坚持了5天。
我是 Selenium 的新手,但我尝试遍历元素列表,但随后会得到一个 StaleElementReferenceException: stale element is not attach to the DOM。
我在 selenium 网站上看到了一些与此类似的其他问题,这意味着元素或页面已更新,因此对该元素的引用可能不正确,因此我尝试了一些方法:
我尝试使用预期条件刷新,然后重新初始化元素,但这只有时有效,我仍然会收到错误我尝试添加尝试和捕获,但这似乎不起作用,如果我也没有完全显示做对了。
我还想看看我是否可以完全放弃 for 循环,只在列表中找到一个元素,该元素具有我需要使用 selenium 的“包含”的 3 个属性,但我不确定它是否可以做到这一点
表结构如下:
<div _ngcontent-c9 class="no-wrap" id="SummaryList">
<div class="row">
<div class="col">
<a>Some Text</a>
</div>
<div class="col">
Value1
</div>
<div class="col">
Value2
</div>
<div class="col">
Value3
</div>
</div>
<div class="row">
<div class="col">
<a>Some Text</a>
</div>
<div class="col">
Value1A
</div>
<div class="col">
Value2B
</div>
<div class="col">
Value3C
</div>
</div>
</div>
给我问题的功能-伪代码
public void validateInfo(String val1, String val2, String val3){
List<WebElement> rowDetail = driver.findElements(By.xpath("//*[@id=\"SummaryList\"]/div/div"));
int rowSize = rowDetail.size();
for(int i = 0; i<rowSize; i++){
rowDetail = driver.findElements(By.xpath("//*[@id=\"SummaryList\"]/div/div"));
//if row values equal to val1,val2&val3
//then click the a tag in that row and break
}
}
我希望通过传入的 3 个参数找到正确的行,然后单击该行中的 a 标记以继续下一步。
错误:org.openqa.selenium.StaleElementReferenceException:过时的元素引用:元素未附加到页面文档