Selenium Webdriver - 单击表格内的元素的问题

时间:2013-08-02 09:59:40

标签: selenium-webdriver

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

3 个答案:

答案 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(让点击重试一段时间)。

希望它有所帮助。