以下是一个示例代码:
<div id="productOrderContainer">
<table class="table gradient myPage">
因此,在productOrderContainer中的这个表有几列,并且根据几个东西将有几行,它们都有几列。一个例子是:
我想要做的是例如获取此表的第一行。 (行具有id,例如:<td rowspan="1">
)然后再次例如在此rowspan中查找特定<div>
所以在psudo-code中我想说的是:
把我拿到桌子上,给我第n行,告诉我<div id='something'>
答案 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();