如何在同一页面上为多个广告链接编写X-path,并且没有唯一ID和唯一名称来区分HTML代码,我在下面写了,请为“点击”广告提供独特的价值并打开广告新窗口,因为所有广告都有class =“ad”且价值是动态的,请帮我解决,因为我想逐个打开所有广告并验证数据 我只展开了两个广告,所有其他广告都已弃用
示例:
<div class="result hlisting">
<div class="result hlisting">
<div class="info">
<h2>
#11856006:
<a class="ad" href="http://www.performancecars.ca/index.php/details/11856006/2009-Toyota-Camry.html">2009 Toyota Camry</a>
</h2>
<span class="price"> 14.584 CAD </span>
<p class="address">
<b>Date: </b>
2012-10-09 13:29:01
</p>
</div>
<p class="description">
<p class="data">
<div class="clear"> </div>
<hr>
</div>
<div class="result hlisting">
<div class="result hlisting">
<div class="info">
<h2>
#11930827:
<a class="ad" href="http://www.performancecars.ca/index.php/details/11930827/2010-Mazda-MAZDA3.html">2010 Mazda MAZDA3 GS ONE OWNER, SU.</a>
</h2>
<span class="price"> 14.200 CAD </span>
<p class="address">
</div>
<p class="description">
<p class="data">
<div class="clear"> </div>
<hr>
</div>
<div class="result hlisting">
<div class="result hlisting">
答案 0 :(得分:0)
您可以使用链接名称 -
link, '2009 Toyota Camry'
link, '2010 Mazda MAZDA3 GS ONE OWNER, SU.'
答案 1 :(得分:0)
List<WebElement> allLinks=driver.findElements(By.className("ads"));
for(WebElement e:ele)
{
e.click(); //click on ad link
//do your operations on particular ad page
//go to home page again
}
上述逻辑将点击该页面上的每个可用链接。
答案 2 :(得分:0)
我会尝试使用css选择器:
String toyotaCss = "a[href='http://www.performancecars.ca/index.php/details/11856006/2009-Toyota-Camry.html']"
String mazdaCss="a[href='http://www.performancecars.ca/index.php/details/11930827/2010-Mazda-MAZDA3.html']";
希望这适合你
答案 3 :(得分:0)
对于链接,你可以通过写, link ='链接的文字'......工作正常
答案 4 :(得分:0)
如果您知道链接的文字,可以尝试类似
的内容selenium.click(selenium.getAttribute("//*[text()='" + link + "']/ancestor::a@href") + " _blank");
要在新窗口中打开,您需要将_blank
附加到href。
如果您想点击页面中的所有链接,无论文本是什么,只需迭代xpath计数
selenium.click(selenium.getAttribute("xpath=(//a)[" + iterator + "]@href") + " _blank");