10

这是一个示例代码:

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

所以这个在 productOrderContainer 中的表有几列,并且取决于几件事将有几行,它们都有几列。一个例子是:

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

所以在伪代码中我想说的是:

给我桌子,给我第n行,给我价值<div id='something'>

4

6 回答 6

39

您可以尝试以下

int index = 0;
WebElement baseTable = driver.findElement(By.className("table gradient myPage"));
List<WebElement> tableRows = baseTable.findElements(By.tagName("tr"));
tableRows.get(index).getText();

您还可以迭代 tablerows 以执行您想要的任何功能。

于 2013-01-07T08:27:57.853 回答
5

你要:

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

换句话说,使用 id 为“productOrderContainer”<DIV>rowNumberth<TR><TABLE>包含<DIV>的 id 找到“something”,然后获取它的文本值(我相信你的意思是“get me the value in <div id='something'>

于 2013-01-07T12:05:40.483 回答
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

于 2013-01-07T08:34:34.653 回答
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]));

有关更多详细信息,请访问本教程

于 2016-10-25T13:24:13.040 回答
0
(.//*[table-locator])[n]

其中n表示特定的行。

于 2015-06-08T19:01:59.350 回答
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();
于 2018-05-18T17:45:55.467 回答