Selenium + XPath:“后续兄弟”只能用于下一个元素吗?

Vit*_*lii 0 selenium xpath selector

有一个简化的html表

<table>
    .....
    <tr/>
    <tr class="base"/>
    <tr class="check"/>
    <tr/>
    <tr class="base2"/>
    <tr class="check"/>
    .....
</table>
Run Code Online (Sandbox Code Playgroud)

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

var row = table.FindElement(By.ClassName("base"));
Run Code Online (Sandbox Code Playgroud)

我需要使用“检查”类获得下一行,但前提是该行存在(否则为例外)。

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

问题是,如果我的班级缺席,则此xpath在班级为'base2'的行之后为我提供了'check'类的行。

是否可以通过“跟随同级”来验证下一个元素,但不是全部?

Gra*_*per 5

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

如果类' check '否则将返回下一行。

如果您想要Xpath:

//tr[@class='base']/following-sibling::tr[1][@class='check']
Run Code Online (Sandbox Code Playgroud)