鉴于这是我的DOM,它不属于我,所以我可能不会以任何方式修改它,如何根据product-id内部文本选择正确的“click here”链接?请注意,此代码中有3个产品,该链接可以显示在页面的任何位置,因此我必须能够仅根据product-id进行选择。这是针对PHP的behat / mink功能测试,到目前为止我根据产品ID进行的所有尝试都失败了。
<div id = "container">
<div class = "product">
<div class="product-detail">
<span class = "product-id">123-456-789</span>
</div>
<div class = "leftblock">
<div class = "product-info">
<a><span>Click Here</span></a>
</div>
</div>
</div>
<div class = "product">
<div class="product-detail">
<span class = "product-id">456-789-012</span>
</div>
<div class = "leftblock">
<div class = "product-info">
<a><span>Click Here</span></a>
</div>
</div>
</div>
<div class = "product">
<div class="product-detail">
<span class = "product-id">345-678-901</span>
</div>
<div class = "leftblock">
<div class = "product-info">
<a><span>Click Here</span></a>
</div>
</div>
</div>
</div>
例如,这个xpath失败了:
//span[text()='Click Here']/following::span[@class='product-id' and text()='" . $productId . "']
我尝试过使用祖先和其他东西,但还没有。我甚至不确定我是否使用了正确的字符。有什么想法吗?
答案 0 :(得分:0)
我明白了。我可以选择product-id类然后使用/ ..上升到父级,然后使用/返回到适当目标所在的位置。
答案 1 :(得分:0)
尝试以下xpath。用新产品ID替换产品ID。希望这有帮助
// div [div / span [text()='123-456-789']] / descendant :: a / span [text()='点击这里']