C# 获取第一个ul及其第一个li中的第一个输入
以下是标记:C# 获取第一个ul及其第一个li中的第一个输入,c#,xpath,selenium,C#,Xpath,Selenium,以下是标记: <h3>Customers</h3> <ul> <li> <label for="customer115">Some Customer Name</label> <input id="customer115" type="checkbox" value="115" name="customer115"> </li>
<h3>Customers</h3>
<ul>
<li>
<label for="customer115">Some Customer Name</label>
<input id="customer115" type="checkbox" value="115" name="customer115">
</li>
.. there are more <li> here...and so on
</ul>
<h3>Dealers</h3>
<ul>
<li>
<label for="dealer100">Some DealerName</label>
<input id="dealer100" type="checkbox" value="115" name="dealer115">
</li>
.. there are more <li> here...and so on
</ul>
到目前为止,我还不知道如何访问这个引用,上面的xPath没有找到它。我想点击那个复选框。这个
ul
不是h3
的孩子。它是一个兄弟姐妹。调整XPath以使用
如果要确保选择第一个ul
和第一个li
,请添加其他谓词筛选器:
//h3[text()='{0}']/following-sibling::ul[1]/li[1]/input[1]
ul
不是h3
的孩子。它是一个兄弟姐妹。调整XPath以使用
如果要确保选择第一个ul
和第一个li
,请添加其他谓词筛选器:
//h3[text()='{0}']/following-sibling::ul[1]/li[1]/input[1]
在我看来,您还可以通过使用更易于阅读的
我相信,对于CSS和XPath哪个更可取,会有很多争论。但通常当我看到我的QA执行复杂的XPath查询时。我试图找到在元素上实现“id”属性或简化DOM元素以供选择的方法。我认为,您还可以通过使用更易于阅读的:
我相信,对于CSS和XPath哪个更可取,会有很多争论。但通常当我看到我的QA执行复杂的XPath查询时。我试图找到在元素上实现“id”属性或简化DOM元素以供选择的方法。XPath不是在h3中查找ul吗?是的,我在发布这篇文章后发现了这一点……XPath不是在h3中查找ul吗?是的,我在发布这篇文章后发现了这一点……我不想选择第一个ul,只有第一个李在ul。。。但是我有一个问题,如果你有一系列的
- ,你想迭代每一个,并选中每个ul中的第一个复选框,你能解释一下::和下面的兄弟吗?我不熟悉XPath.found,应该是{}so text()='{0}',我有[]
后面的兄弟姐妹
是一个轴,:
是轴分隔符。如果未在位置步长处指定轴,则默认值为子对象
。因此,/ul/li
相当于/child::ul/child::li
。我不想选择第一个ul,只有ul中的第一个li。。。但是我有一个问题,如果你有一系列的- ,你想迭代每一个,并选中每个ul中的第一个复选框,你能解释一下::和下面的兄弟吗?我不熟悉XPath.found,应该是{}so text()='{0}',我有[]
后面的兄弟姐妹
是一个轴,:
是轴分隔符。如果未在位置步长处指定轴,则默认值为子对象
。因此,/ul/li
相当于/child::ul/child::li
。
//h3[text()='{0}']/following-sibling::ul[1]/li[1]/input[1]
ul:first li:first input[type='checkbox']