CSS 选择器中的 OR 条件

Posted

技术标签:

【中文标题】CSS 选择器中的 OR 条件【英文标题】:OR condition in CSS selector 【发布时间】: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 之一 【参考方案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');

【讨论】:

以上是关于CSS 选择器中的 OR 条件的主要内容,如果未能解决你的问题,请参考以下文章

CSS 属性选择器中的“i”是啥意思?

css选择器中,为啥nth

星号 (*) 在 CSS 选择器中的作用是啥?

CSS 选择器中的类名是不是区分大小写?

Selenium-python 中的 css 选择器中的括号 [?] 的问题

处理 BeautifulSoup CSS 选择器中的冒号