【问题标题】:Select element A or element B with CSS selector使用 CSS 选择器选择元素 A 或元素 B
【发布时间】:2012-08-16 13:28:12
【问题描述】:

有没有办法选择 CSS 选择器表达式中指定的 2 个元素之一?如果未找到元素 A,则选择元素 B。

例子:

css=input[id$=sometext]@id OR textarea[id$=sometext]@id

上述表达式应返回input 元素或textarea 元素的id,其id 以“sometext”结尾。

附带说明一下,我正在尝试在 selenium2library 中使用这个 CSS 选择器,它使用 sizzle 来处理 css 选择器。

我尝试了以下方法,它们似乎都不起作用(语法错误):

css=input[id$=sometext]@id / textarea[id$=sometext]@id
css=input[id$=sometext]@id/textarea[id$=sometext]@id
css=input[id$=sometext]@id/css=textarea[id$=sometext]@id
css=input[id$=sometext]@id OR css=textarea[id$=sometext]@id
css=input|textarea[id$=sometext]@id
css=input[id$=sometext]@id, textarea[id$=sometext]@id
css=input[id$=sometext]@id,textarea[id$=sometext]@id

【问题讨论】:

  • 使用 if else Java 或任何编程语言怎么样??
  • @Maitreya 是的,我可以用 Python 或 Java 处理它,但我想知道是否有纯 CSS 解决方案。
  • 我认为这不可能。它会破坏语法。

标签: selenium css-selectors sizzle


【解决方案1】:

Sizzle 使用 CSS 选择器,例如,@id 不是 CSS 选择器。我个人不确定@id 应该是什么意思,但是,如果没有那部分,请尝试:

input[id$=sometext],textarea[id$=sometext]

【讨论】:

  • 很抱歉评论晚了,但我已经尝试过了,请参阅我在原始问题中的最后一次尝试。 @id 只是 Robot Framework 从已识别元素中提取 id 属性值的一种方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
相关资源
最近更新 更多