wake-up-neo.com

Wie kann man mit Selen bestimmte Zeilen in einer Tabelle finden?

Hier ist ein Beispielcode:

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

Diese Tabelle in productOrderContainer hat also mehrere Spalten und abhängig von mehreren Dingen mehrere Zeilen, die alle mehrere Spalten haben. Ein Beispiel ist:

Ich möchte zum Beispiel die erste Zeile dieser Tabelle erhalten. (Zeilen haben IDs wie: <td rowspan="1">) Und dann zum Beispiel in diesem Zeilenbereich nach einem bestimmten Wert in einem bestimmten <div> suchen

Im Psudo-Code möchte ich sagen:

Besorge mir die Tabelle, besorge mir die n-te Zeile, besorge mir den Wert in <div id='something'>

7
Koray Tugay

sie können versuchen, zu folgen

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

Sie können auch Tablerows durchlaufen, um jede gewünschte Funktion auszuführen.

32
Prashant Shukla

Sie wollen:

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

Mit anderen Worten, <DIV> mit der ID "irgendwas" innerhalb der rowNumberth <TR> des <TABLE> innerhalb des <DIV> mit der ID "productOrderContainer" finden und dann den Textwert erhalten (was ich glaube, dass Sie mit " Wert in <div id='something'> "

5
Ross Patterson

wenn Sie auf die Tabellenzelle zugreifen möchten

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

Wenn Sie auf verschachtelte Tabellenzellen zugreifen möchten -

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

Für weitere Informationen besuchen Sie dieses Tutorial

2
anuja jain

Nun, vorher habe ich den Ansatz verwendet, den Sie in WebElement finden:

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

Bitte beachten Sie, dass ich die gefundene Instanz WebElement gefunden habe.

Der obige Code ist Java und setzt voraus, dass die Variable driver eine gesunde Instanz von WebDriver ist.

2
Pavel Janicek

Mit dem folgenden Code können Sie die Zeilen-/Spaltennummer angeben und den resultierenden cell value abrufen:

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();
0
(.//*[table-locator])[n]

dabei steht n für die bestimmte Zeile.

0
Anoop Philip