1

我有一个页面,其中包含一个包含多行/多列的表格。在其中一个专栏中,我有一个显示“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();   
            }
        }
    }
4

3 回答 3

0

你能试试这个

if(colElement.getText().equalsIgnoreCase("OK"))

代替

if(colElement.getText().equals("OK"))
于 2013-08-03T12:12:06.303 回答
0

带有“OK”的元素是 td 还是锚点?如果表格单元格中存在锚点,则单击它而不是父 td 可能更可靠。

于 2013-08-02T14:39:32.253 回答
0

我有几个测试,我使用的代码与你的代码非常相似,而且效果很好。根据我对这些问题的经验,我想补充两点:

1)更改这行代码:

if(colElement.getText().equals("OK"))

if(colElement.getText().trim().equals("OK"))

2)将点击包装成一个Wait(让点击重试一段时间)。

希望能帮助到你。

于 2013-08-05T09:30:43.873 回答