在Selenium中使用xpath在列表中选择倍数元素

时间:2018-07-30 09:10:51

标签: selenium-webdriver xpath

下面是HTML结构。 我想将所有值存储到哈希图中。 我将遍历行和列。 当遍历列i时,将识别列中存在的元素并以不同的方式处理它。 它将工作:findElements(By.xpath(“ label | input | select”)

<tr>
<td><label>hdash</label> </td>
<td> <input type='text'/></td>
<td><input type='select'/></td>
.
.
.
</tr>


列出RatesRows = ratesTbl.findElements(By.tagName(“ tr”)); 对于所有行{

列出RatesColumns = RatesRows.get(i).findElements(By.tagName(“ td”));   对于所有列{        列出RatesdataColumn = RatesColumns.get(j).findElements(By.xpath(“ label | input | select”))); }

}

enter image description here

1 个答案:

答案 0 :(得分:0)

不可能以这种方式传递xpath。相反,您可以从td

获取子元素
RatesdataColumn = RatesColumns.get(j).findElements(By.xpath(".//*");

然后您可以根据用例使用元素

如果您的HTML就是这种方式

<tr>
<td><label>hdash</label> </td>
<td> <input type='text'/></td>
<td><input type='select'/></td>
.
.
.
</tr>

在第一次迭代中,您将从<label>hdash</label>中获得RatesdataColumn = RatesColumns.get(j).findElements(By.xpath(".//*");

如果要将数据存储在Hashmap中,只需使用getText方法

for(WebElement childElement : RatesdataColumn){
    hashMap.put("<<Key Value>>", childElement.getText());
}