如何在selenium中更改表数据

时间:2014-04-10 09:45:50

标签: java selenium xpath selenium-rc

我随机生成了表格。目前,我可以使用selenium.getTable(XPath)获取表格单元格数据,但我无法更改该值。我的职责是:

    public static String getGridCellValue(Selenium selenium, String strGridId, int nRowIndex, int nCellIndex)
{
    String strXPath = "//div[@id='"+strGridId+"']/table/tbody/tr[2]/td/div/div/table."+(nRowIndex + 1)+"."+(nCellIndex);
    return selenium.getTable(strXPath);
}

但是我无法将set方法编写为:

    public static void setGridCellValue(Selenium selenium, String strGridId, int nRowIndex, int nCellIndex, String strValue)
{

    String strXPath = "//div[@id='"+strGridId+"']/table/tbody/tr[2]/td/div/div/table."+(nRowIndex + 1)+"."+(nCellIndex);
    selenium.type(strXPath, strValue);
}

这是在说

  

com.thoughtworks.selenium.SeleniumException:Element //div[@id='gridPShipsRel']/table/tbody/tr[2]/td/div/div/table.1.5 not found < / p>

有谁知道如何在selenium中设置表值?

2 个答案:

答案 0 :(得分:3)

不确定strXPath = "//div[@id='"+strGridId+"']/table/tbody/tr[2]/td/div/div/table."+(nRowIndex + 1)+"."+(nCellIndex)将如何检索单元格。添加一些HTML或

您可以使用以下方法,这将更新单元格值

public String updateCell(By identifier, int romNumber, int columnNumber, String value) 
{
   WebElement table = driver.findElement(identifier);
   List<WebElement> rows = table.findElements(By.xpath("tbody/tr"));
   List<WebElement> cells = rows.get(romNumber).findElements(By.tagName("td"));
   WebElement desiredCell = cells.get(columnNumber);
   desiredCell.setText(value);
}

编辑: 通过查看您的导入com.thoughtworks.selenium.我可以说您使用的是Selenium RC。我的解决方案是基于webdriver的

答案 1 :(得分:0)

对于你的set方法,尝试以这种方式给出xpath:

strXpath = "//div[@id='"+strGridId+"']/table/tbody/tr[2]/td/div/div/table/tbody/tr["+(nRowIndex + 1)+"]/td[" +(nCellIndex)+"]"