是否有用于连续元素的CSS或XPath选择器?我想测试一些HTML,以确保<h1>
至<h6>
标签的顺序。我想确保没有缺少的标题。例如,这将是有效的
<h1>Header1</h1>
<h2>Header2</h2>
<h3>Header3</h3>
但这将是无效的
<h1>Header1</h1>
<h3>Header3</h3>
<h4>Header4</h4>
因为缺少<h2>
标签。
问题是,我也想将此HTML ALS视为有效,但没有找到可以选择<h2>
标签的选择器:
<h1>Header1</h1>
<div>
<h2>Header2</h2>
</div>
<h3>Header3</h3>
我与兄弟姐妹h1~h2~h3
尝试过,但这在嵌套情况下不起作用。我尝试了相邻的选择器h1+h2+h3
,但这也不起作用。似乎只有子选择器,并且东西在同一父级上运行。我也尝试使用XPath解决此问题,但似乎存在与CSS类似的局限性。
那么在CSS或XPath中是否存在“元素在代码中某个元素之后的另一个元素”类型的选择器?
答案 0 :(得分:2)
在XPath中,您可以使用<p id="test">test data</p>
<script>
$("#test").on("click", function(){
var Clickvalue = $(this).text();
$("input").val(Clickvalue);
});
</script>
轴来选择以下可能不是同级节点:
//to get all rows in table
List<WebElement> rows=driver.findElements(By.xpath("//table[@id='cust-found-table']/tbody/tr"));
for (int i = 0; i < rows.size(); i++) {
//check text in first cell of each row
if(rows.get(i).findElement(By.xpath("td[1]")).getText().equals("requiredCustIdHere")) {
//click on third cell of required row
rows.get(i).findElement(By.xpath("td/button")).click();
break;
}
}