Selenium + XPath:'follow-sibling'只能用于下一个元素吗?

时间:2016-08-31 11:01:35

标签: selenium xpath selector

有一个简化的html表

<table>
    .....
    <tr/>
    <tr class="base"/>
    <tr class="check"/>
    <tr/>
    <tr class="base2"/>
    <tr class="check"/>
    .....
</table>

对于硒,我有一个早期发现类“基”的元素。

var row = table.FindElement(By.ClassName("base"));

我需要使用类'check'获取下一行,但仅限于它存在(否则为异常)。

var nextRow = row.FindElement(By.XPath("following-sibling::tr[@class='check'][1]")

问题是这个xpath在我的类不存在之后的行中的行'class2'之后给了行'check'的行。

是否可以通过'follow-sibling'验证下一个元素,但不是所有元素?

1 个答案:

答案 0 :(得分:4)

尝试使用CSS定位器 - tr[class='base'] + tr[class='check']

如果上课&#39; 检查&#39;将返回下一行别的没什么。

如果你想要Xpath:

//tr[@class='base']/following-sibling::tr[1][@class='check']