【发布时间】:2014-06-27 14:50:04
【问题描述】:
我是 selenium 新手,在使用 WebDriver(Java 语言)在网页上查找特定元素时遇到了麻烦。我试图引用的特定元素是链接,但没有与它们关联的任何 ID/其他 XML 属性。我无权访问 HTML 源代码,因此无法向元素添加任何标识符。我不确定使用 FindBy 函数能做什么和不能做什么,所以有人可以看看 HTML 并告诉我如何找到指定的元素(最终目标是使用 WebElement.Click () 方法就可以了)。
<div class="col-md-12">
<h3>My Registered Cards</h3>
<div id="cards" class="row list-group">
<div>
这条线
<a href="/website/carddetails?cardnumber=1">
这条线
<div class="tile col-md-3 img-rounded">
<div class="tile-inner">
<img class="group list-group-image col-md-12 hidden-xs hidden-sm" src="http://placehold.it/200x100/000/fff" alt="">
<div>
<div class="row">
<h4 class="group inner list-group-tile-heading col-xs-12 col-md-12">Card Name</h4>
</div>
</div>
</div>
</div>
</a>
</div>
<div>
这条线
<a href="/website/carddetails?cardnumber=2">
这条线
<div class="tile col-md-3 img-rounded">
<div class="tile-inner">
<img class="group list-group-image col-md-12 hidden-xs hidden-sm" src="http://placehold.it/200x100/000/fff" alt="">
<div>
<div class="row">
<h4 class="group inner list-group-tile-heading col-xs-12 col-md-12">Card Name</h4>
</div>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
我已经尝试了几种不同的方法,但是 WebDriver 在这两种情况下都没有找到正确的元素。
@FindBy(linkText = "Card Name")
public List<WebElement> cards;
和
@FindBy(xpath = "//div[@id='cards']/div/@a")
public List<WebElement> cards;
编辑:感谢 SiKing 不完全是我正在寻找的答案,但您确实为我指明了正确的方向。
我实际上最终做的是
@FindBy(xpath = "//div[@id='cards']/div/a")
public List<WebElement> cards;
如果不清楚,我试图做的是获取网站上所有卡片(特别是卡片链接)的列表,然后我可以按顺序点击这些卡片
【问题讨论】:
标签: java html selenium selenium-webdriver find