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'>
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.
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 rowNumber
th <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'>
"
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
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.
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();
(.//*[table-locator])[n]
dabei steht n
für die bestimmte Zeile.