【问题标题】:How to select all class that is above certain tag using CSS Selector in Selenium + Python?如何使用 Selenium + Python 中的 CSS 选择器选择高于某个标签的所有类?
【发布时间】:2019-09-14 14:02:31
【问题描述】:

在这里,我想获取“h4”标签上方的所有 class= “result-row”,而不是“h4”标签下方的那些。

我当前的代码选择了所有这些:

section = driver.find_element_by_css_selector("[class='rows']")
result_rows = section.find_elements_by_css_selector("li.result-row")

那么我怎样才能在这里得到想要的结果呢?

【问题讨论】:

  • 请通过edit使用sn-p工具插入html,以便我们进行测试。如果可能的话,还有网址。

标签: python selenium web-scraping automation css-selectors


【解决方案1】:

您可以尝试以下使用 :not 根据类过滤掉 h4 的一般兄弟的 css

li.result-row:not(h4.ban ~ li.result-row)

可以简化为:

.result-row:not(.ban ~ .result-row)

【讨论】:

    【解决方案2】:

    如果 CSS 不是强制性的,您可以使用 XPath:

    driver.find_element_by_xpath("//h4/previous-sibling::li")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 2015-10-20
      • 2013-05-07
      • 2014-01-03
      • 2021-08-26
      • 2015-02-19
      • 1970-01-01
      相关资源
      最近更新 更多