我有一个包含多行/列的表的页面。在其中一个专栏中,我有一个说“OK”的链接。我需要点击该链接。
这是我的代码,但它的工作非常不一致。它在几行上单击“确定”,但在其他几行上无法单击相同。我在这里错过了什么吗?
更新
我使用colElement.findElement(By.linkText("OK")).click()
而不是colElement.click()
List<String> tableValues = new ArrayList<String>();
WebElement element=driver.findElement(By.className("table"));
List<WebElement> rowCollection=element.findElements(By.xpath("//*[@className='table']/tbody/tr"));
for(WebElement rowElement:rowCollection)
{
List<WebElement> colCollection=rowElement.findElements(By.tagName("td"));
for(WebElement colElement:colCollection)
{
if(colElement.getText().equals("OK"))
{
colElement.click();
}
}
}
答案 0 :(得分:0)
元素中带有'OK'的元素是td还是锚点?如果表格单元格中存在锚点,则单击该单元格而不是父级td可能更可靠。
答案 1 :(得分:0)
你能试试吗
if(colElement.getText().equalsIgnoreCase("OK"))
而不是
if(colElement.getText().equals("OK"))
答案 2 :(得分:0)
我有几个测试,我使用与你的代码非常相似的代码,它工作正常。根据我对这些问题的经验,我会添加两件事:
1)更改此行代码:
if(colElement.getText().equals("OK"))
到
if(colElement.getText().trim().equals("OK"))
2)将点击包裹到Wait
(让点击重试一段时间)。
希望它有所帮助。