所以这是HTML设计,我试图看看是否为特定文本“祝你好运哈利”显示了<i class="fas fa-lock"></i>
。
如何用xpath识别多个webelements?
我可以使用xpath单独识别这些webelements但是如何确保它们是嵌套的?
<div class="card">
<div class="overlayBg">
<div class="duration_notif">22:33</div>
<i class="fas fa-lock"></i>
</div>
<div class="card-body">
<h5 class="card-title">
<div class="LinesEllipsis ">
<div>Good luck Harry</div>
</div>
</h5>
</div>
</div>
如果它们彼此嵌套,我需要验证两个webelements。
我正在使用带有Java的pagefactory和selenium。
嵌套在意义上<div>Good luck Harry</div>
是另一个div
的孩子,这是h5
的孩子,<div class="card-body">
的孩子?
//div[@class="card-body"]/h5[@class="card-title"]/div[contains (@class, "LinesEllipsis")]/div
在xpath中,/
表示直接下降 - 节点必须是另一个节点的第一级子节点。
当您使用此xpath处理元素时,通过它找到它,您将保证它具有此祖先结构。
嵌套在意义上<div class="overlayBg">
和<div class="card-body">
有一个共同的父母 - 那div
?
/div//div[@class="card-body" and preceding-sibling::div[@class="overlayBg"]]/h5[@class="card-title"]/div[contains (@class, "LinesEllipsis")]/div
您将从公共父开始,并使用preceding-sibling
轴扩展谓词 - 这意味着“必须在同一级别上存在与此条件匹配的节点”;并且处于同一级别,这意味着两者共享其父节点。