试图找到正确的xpath选择器。元素只有href
个唯一。是否可以通过href="#">iphone X
文本和父类class="card h-100"
查找元素。但是请点击<button class="btn btn-info">
,它是父类的另一个孩子。
<div class="card h-100">
<div class="card-body">
<h4 class="card-title">
<a href="#">iphone X</a>
</h4>
</div>
<div class="card-footer">
<button class="btn btn-info"></button>
</div>
</div>
答案 0 :(得分:1)
使用querySelectorAll()
(function() {
var a = document.querySelectorAll('a[href="#"]');
var result = [];
a.forEach(function(el) {
if (el.innerHTML == 'iphone X' && el.parentElement.parentElement.parentElement.className.includes('card h-100')) {
result.push(el);
}
});
console.log(result);
})();
<div class="card h-100">
<div class="card-body">
<h4 class="card-title">
<a href="#">iphone X</a>
</h4>
</div>
<div class="card-footer">
<button class="btn btn-info"></button>
</div>
</div>
<div class="card h-100">
<div class="card-body">
<h4 class="card-title">
<a href="#">iphone XS</a>
</h4>
</div>
<div class="card-footer">
<button class="btn btn-info"></button>
</div>
</div>
<div class="card h-200">
<div class="card-body">
<h4 class="card-title">
<a href="#">iphone X</a>
</h4>
</div>
<div class="card-footer">
<button class="btn btn-info"></button>
</div>
</div>
答案 1 :(得分:1)
如果我理解正确,您想单击下一个子类中与具有文本“ iphone X”的“ a”相对应的按钮。为此,您可以使用以下xpath:
//a[text()='iphone X']//ancestor::div//button[@class='btn btn-info']
希望它会有所帮助:)
答案 2 :(得分:0)
这是您正在寻找的XPath,带有解释
//div[@class='card h-100'][.//a[.='iphone X']]//button
^ find a DIV
^ with this class
^ that has a child A
^ with text = 'iphone X'
^ once you find that DIV, find the child BUTTON
答案 3 :(得分:0)
要查找与文本 iphone X 相关联的元素<button class="btn btn-info">
,该元素的父节点为class="card h-100"
,可以使用以下Locator Strategy:
xpath
:
//div[@class='card h-100']//a[text()='iphone X']//following::button[@class='btn btn-info']