如何找到在使用Selenium表的特定行?(How to find specific lines i

2019-07-17 22:08发布

下面是一个例子的代码:

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

所以这个表中productOrderContainer是有几列,这取决于几件事情将有几行,所有有几个列。 一个例子是:

我想要做的是例如获得此表的第一行。 (行具有的ID,例如: <td rowspan="1">然后再次例如在此rowspan的寻找在一个特定的一个特定的值<div>

因此,在psudo码是什么我想说的是:

给我的表,我拿的第n行,让我的值<div id='something'>

Answer 1:

你可以尝试以下

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执行任何你想要的功能。



Answer 2:

你要:

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

换句话说,找到<DIV> id为“东西”的范围内包含rowNumber<TR>中的<TABLE>其中包含的<DIV> id为“productOrderContainer”,然后得到其文本值(这是什么我相信你的意思“帮我在值<div id='something'>



Answer 3:

如果您要访问的表格单元格

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]));

欲了解更多详情,请访问该教程



Answer 4:

那么以前,我用你能找到里面的方法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



Answer 5:

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

其中n表示特定线。



Answer 6:

下面的代码允许您指定的行/列数,并得到所产生的单元格的值

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();


文章来源: How to find specific lines in a table using Selenium?