如何使用Selenium在表格中查找特定行?

时间:2013-01-07 07:54:41

标签: selenium selenium-webdriver web-testing automated-tests gui-testing

以下是一个示例代码:

<div id="productOrderContainer">
<table class="table gradient myPage">

因此,在productOrderContainer中的这个表有几列,并且根据几个东西将有几行,它们都有几列。一个例子是:

我想要做的是例如获取此表的第一行。 (行具有id,例如:<td rowspan="1">)然后再次例如在此rowspan中查找特定<div>

中的特定值

所以在psudo-code中我想说的是:

把我拿到桌子上,给我第n行,告诉我<div id='something'>

中的价值

5 个答案:

答案 0 :(得分:5)

你想:

int rowNumber=...;
string value = driver.findElement(By.xpath("//div[@id='productOrderContainer']/table/tbody/tr[" + rowNumber +"]/div[id='something']")).getText();

换句话说,找到<DIV>rowNumber所包含的<TR> <TABLE> <DIV>中包含ID为“某事物”的<div id='something'> id“productOrderContainer”,然后得到它的文本值(我认为你的意思是“让我在{{1}}中获得价值”

答案 1 :(得分:2)

以前,我使用了WebElement

中可以找到的方法
WebElement baseTable = driver.findElement(By.tagName("table"));
WebElement tableRow = baseTable.findElement(By.xpath("//tr[2]")); //should be the third row
webElement cellIneed = tableRow.findElement(By.xpath("//td[2]"));
String valueIneed = cellIneed.getText();

请注意,我在找到的WebElement实例中找到了。

以上是Java代码,假设driver变量是WebDriver的健康实例

答案 2 :(得分:2)

如果要访问表格单元格

WebElement thirdCell = driver.findElement(By.Xpath("//table/tbody/tr[2]/td[1]")); 

如果要访问嵌套表格单元格 -

WebElement thirdCell = driver.findElement(By.Xpath("//table/tbody/tr[2]/td[2]"+//table/tbody/tr[1]/td[2]));

有关详细信息,请访问此Tutorial

答案 3 :(得分:0)

(.//*[table-locator])[n]

其中n代表特定的行。

答案 4 :(得分:0)

以下代码允许您指定行/列编号并获得生成的单元格值

WebDriver driver = new ChromeDriver();
WebElement base = driver.findElement(By.className("Table"));
tableRows = base.findElements(By.tagName("tr"));
List<WebElement> tableCols = tableRows.get([ROW_NUM]).findElements(By.tagName("td"));
String cellValue = tableCols.get([COL_NUM]).getText();