【问题标题】:Selenium + XPath: can 'following-sibling' be used for next element only?Selenium + XPath:“following-sibling”只能用于下一个元素吗?
【发布时间】:2017-01-07 22:31:15
【问题描述】:

有一个简化的html表格

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

使用 selenium,我有一个早期发现的“base”类元素。

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

我需要使用“检查”类获取下一行,但前提是它存在(否则为异常)。

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

问题是,这个 xpath 给了我一个带有类“检查”的行,然后是类“base2”的行,以防我的类缺席之后的行。

'following-sibling' 是否可以仅验证下一个元素而不是全部?

【问题讨论】:

  • 我不确定我是否理解这个问题,但如果你想要下一个tr 兄弟,并测试它是否有你想要的类,你可以反转谓词:following-sibling::tr[1][@class='check']

标签: selenium xpath selector


【解决方案1】:

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

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

如果你想要 Xpath:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多