【问题标题】:OR condition in CSS selectorCSS 选择器中的 OR 条件
【发布时间】:2011-06-12 12:24:42
【问题描述】:

我正在尝试通过 CSS 选择器查找元素。我有一个在多个站点上使用的脚本,并且有相同的元素,但具有不同的类。有没有办法通过类似的方式找到:

css=div[(id='resultVersionA']||[id='resultVersionB')]

最好的问候

编辑

您的解决方案有效,但不适用于我的下一个元素

#first-order price, #first price input[type='submit']

更清楚一点:在查询时,我想选择 div 下的按钮,即 i 'first_order price' OR 'first price'。

【问题讨论】:

  • #resultVersionA, #resultVersionB { ... } 你是这个意思吗?
  • 您想将 CSS 应用于两个这些元素吗?还是只是其中之一?如果两者都出现在同一页面中怎么办?
  • 在一个站点只有一个元素具有这些 id 之一

标签: css selenium css-selectors


【解决方案1】:

更新

应该这样做(抱歉,我之前没有看到您的编辑):

#first-order price input[type='submit'], #first price input[type='submit']

旧答案,不要使用

如果您正在搜索 ID,

div#resultVersionA, div#resultVersionB

如果您正在搜索课程,

div.resultVersionA, div.resultVersionB

不需要属性选择器。如果您不关心元素类型,也可以省略 div 部分。

【讨论】:

  • thx 寻求帮助 :) 但实际上我的元素具有像“一阶价格”或“用户名”这样的 ID。我不是这个ID的制造者。我只是想自动化这个网站:/。你能给我这个例子的查询吗?
【解决方案2】:
#first-order price, #first price input[type='submit']

【讨论】:

    【解决方案3】:

    这两个元素是否有不同的 ID 和类?如果他们有不同的 ID,你可以使用:

    document.GetElementById('resultVersionA');
    

    否则,如果该元素在给定类的页面上仅使用一次,则:

    var rsltVerA = document.GetElementsByTagName('div').getClass('resultVersionA');
    
    var rsltVerB = document.GetElementsByTagName('div').getClass('resultVersionB');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 2017-10-15
      • 2011-06-10
      相关资源
      最近更新 更多