我有以下HTML代码,需要从中提取电子邮件ID。
<div class="Serial">
<p> … </p>
<p>
<span>
<a href="mailto:[email protected]">
Mr. XYZ
</a>
</span>
</p>
<p> … </p>
<p> … </p>
上面的电子邮件ID是根据一系列随机数生成的。我需要对其进行多次迭代,并且每次尝试获取邮件ID时都会失败。
我正在使用for循环迭代n次并尝试以下代码:
WebElement link = driver.findElement(By.linkText("Mr.XYZ").getAttribute("href");
Assert.assertTrue(link.contains("mailto : ....")
它在第一次迭代中工作正常,而在以后失败。每次运行代码时,如何获取邮件ID?
最佳答案
您只需要以不同的方式考虑它,特别是考虑它在整个文档中的位置。您正在使用.linkText
,因此当前绑定到正在显示的文本。
您可以使用CSS选择器来更改此设置。
在您的示例中,我们可以假定anchor
仅是上层div
与类Serial
的链接。这样,您可以拥有一个如下所示的CSS选择器:
div.Serial > a
意思是,里面的
text
无关紧要。您可以走得更远一点,说,很好,那里也有其他链接,因此我们将确保只获得其中包含
mailto:
的链接:div.Serial > a[href^='mailto:']