我的代碼如下。
private List<WebElement> reports;
public List<WebElement> getReports(){
return Common.returnElementList(DriverFactory.getDriver(), reportsMenu, reports);
}
public Map<String, String> getReportDesc() {
Map<String, String> temp = new HashMap<>();
for(WebElement item: getReports()){
List<WebElement> cols = item.findElements(By.xpath("/child::td[@role='gridcell']"));
String key = Common.getElementText(DriverFactory.getDriver(), cols.get(0));
String desc = Common.getElementText(DriverFactory.getDriver(), cols.get(1));
temp.put(key, desc);
}
return temp;
}
我item.findElements(By.xpath("/child::td[@role='gridcell']"));試圖獲取該特定行的單元格,而不是獲取該表中的所有單元格。
我怎樣才能得到特定的行列?
uj5u.com熱心網友回復:
您需要使用相對 XPath 定位器。
由于您沒有共享指向包含該表格的頁面的鏈接,我們只能猜測。所以,我猜:
而不是
item.findElements(By.xpath("/child::td[@role='gridcell']"));
嘗試這個:
item.findElements(By.xpath(".//td[@role='gridcell']"));
XPath 前面的點.表示這是相對的 XPath,我們要在當前節點//td[@role='gridcell'] 內item定位匹配的元素。
否則driver將搜索所有匹配/child::td[@role='gridcell']運算式的元素形成頁面上的第一個頂部元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/535392.html
標籤:爪哇硒xpath
