你好,我试图找到具有相同className的多个元素.className和元素的主体结构是相同的,但文本,链接和图片是不同的.
<div class="dc-content-right clearfix"> (parent)
<div class="dc-item clearfix"> (child nodes)
<div class="dc-item clearfix">
<div class="dc-item clearfix">
Run Code Online (Sandbox Code Playgroud)
这些子元素中的每一个都看起来像这样:
<div class="dc-item clearfix">
<div class="dc-icon">
<div class="dc-info">
<h2>
<a href="http://www.avg.com/ww-en/free-antivirus-download">AVG AntiVirusFree 2015</a>
</h2>
Run Code Online (Sandbox Code Playgroud)
每个子元素在H2标记中都有不同的文本.因此,一旦它是AVG AntiVirus Free 2015,那么它就是Internet Security ....等等.所以我想要做的是将所有元素保存到列表中,然后使用它们.首先,我将这些元素保存到WebElements列表中:
List <"WebElement"> list = driver.findElements(By.xpath("//div[@class='dc-item clearfix']"));
Run Code Online (Sandbox Code Playgroud)
之后我想迭代列表并为屏幕上的每个元素写入h2文本:
for(WebElement i:superDiv)
{
System.out.println(i.findElement(By.xpath("//h2/a")).getText());
}
Run Code Online (Sandbox Code Playgroud)
所以结果应该是从中提取的3个不同标题的列表divs.的问题:结果是3个标题的这是列表一样!
AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
Run Code Online (Sandbox Code Playgroud)
看起来我找到了相同的元素3次.有谁知道可能是什么问题?谢谢
List<WebElement> list = driver.findElements(By.xpath(".//*[@class='dc-item clearfix']//h2/a"));
for(WebElement el : list) {
System.out.println(el.getText());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16276 次 |
| 最近记录: |