Javascript 是否可以选择包含h1的锚定标记,该h1包含文本“1”;参观现场;?
我正在使用Cypress.io测试我的初创公司的网站,并希望选择一个特定的锚定标签Javascript 是否可以选择包含h1的锚定标记,该h1包含文本“1”;参观现场;?,javascript,jquery,chai,cypress,Javascript,Jquery,Chai,Cypress,我正在使用Cypress.io测试我的初创公司的网站,并希望选择一个特定的锚定标签 <a href="/blablabla" target="_blank" rel="noopener noreferrer canonical"> <h1>Visit Site</h1> </a> 但是,该锚定标记没有任何我可以用来识别它的唯一属性,因此我想使用包含文本“访问站点”的childh1标记来帮助识别锚定标记 <a href="/blablab
<a href="/blablabla" target="_blank" rel="noopener noreferrer canonical">
<h1>Visit Site</h1>
</a>
但是,该锚定标记没有任何我可以用来识别它的唯一属性,因此我想使用包含文本“访问站点”的childh1
标记来帮助识别锚定标记
<a href="/blablabla" target="_blank" rel="noopener noreferrer canonical">
<h1>Visit Site</h1>
</a>
我无法使用href
属性来帮助识别锚定标记,因为笔试将用于相同结构但内容不同的其他页面
我的问题是,我不知道是否可以根据元素是否包含特定文本的元素来选择元素。您好,根据您的问题,我准备好了示例请检查此链接
$(文档).ready(函数(){
$(“a”)。每个功能(索引,元素){
让findHeading=$(elem).find(“h1:contains('Site')”);
如果(findHeading!=未定义)
{
控制台日志(“索引”+索引);
log(“Find H1”+$(findHeading.html());
}
})
})
您可以使用jQuery的包含选择器根据其中的文本查找所需的h1。一旦h1被找到,只需选择它的父对象,它将成为您的锚
let targetH1 = $('a h1:contains("Visit Site")');
console.log(targetH1.parent()); // this will give you the anchor element
例如。。。我阻止了链接的默认行为(
preventDefault()
)
因此,使用,您可以将包含特定文本的链接作为目标
它将针对所有匹配的元素。。。但在实践中,如果不迭代集合,则会得到第一个集合
在这里举个例子。。。它抛出已单击元素的父元素。所以没有问题。一切取决于你想做什么
然后。。。获取该目标的parent()
,以获取锚定的href
属性
$(“a h1:contains('Visit Site')”)。单击(函数(e){
e、 预防默认值();
console.log(“耶!”+$(this.parent().attr(“href”))
})
如果要使用Cypress命令(而不是jQuery),
cy.contains('a>h1','Visit Site').parent()
。cy.contains(…)
生成h1
和.parent()
将焦点移回a
,并将其生成到下一个链接的命令。