【问题标题】:Simplifying an xpath expression used by selenium简化 selenium 使用的 xpath 表达式
【发布时间】:2012-12-19 01:01:56
【问题描述】:

我有以下 XPath 表达式,我从 selenium 调用(从技术上讲,从调用 selenium 的 splinter 调用):

//label[text()="data"]/following-sibling::div/input|//label[text()="data"]/following-sibling::div/textarea

有没有办法简化这个表达式?以下在 selenium 中不起作用,尽管它似乎在 AquaPath 中起作用:

//label[text()="data"]/following-sibling::div/(input|textarea)

【问题讨论】:

  • 能否请您向我们展示您的 html 代码?
  • Lorin,我的回答对你有用吗,还是你还有什么问题?我刚刚做了一个更新,展示了当有大量备选方案时如何编写紧凑的表达式。
  • @DimitreNovaatchev 是的,它很有用。就我而言,我只有两种选择,所以最初的解决方案效果很好。

标签: xpath selenium


【解决方案1】:

试试

//label[text()="data"]/following-sibling::div/*[self::input or self::textarea]

只要有很多(超过 3 个备选方案),这样的表达式就会大大缩短:

someExpr/*[contains('|name1|name2|name3|name4|', concat('|',name(), '|'))]

【讨论】:

    猜你喜欢
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多