【问题标题】:Selenium webdriver, Python - target partial CSS selector?Selenium webdriver,Python - 目标部分CSS选择器?
【发布时间】:2024-04-30 16:25:02
【问题描述】:

我正在尝试针对页面上的特定 CSS 元素,但问题是它们具有不同的选择器名称。例如,input#dp156435476435.textinput.wihtinnextyear.datepicker.hasDatepicker.error。我需要以 CSS 为目标,因为我在元素末尾专门寻找 .error,而这仅在 CSS 中(测试网站上字段的错误验证。我知道我是否针对类/名称/ href/id/etc,我可以使用 xpath,但我不知道 selenium webdriver 中有部分 CSS 选择器。任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 您是否考虑过遍历整个文档树并测试您的 CSS 属性的每个元素?

标签: python selenium-webdriver


【解决方案1】:

句号/句号是部分类选择器:

span.error

会找到:

<span class="error" />
<span class="error warning" />
<span class="critical error" />

你还有:

span[class^='error']

(开头)

span[class$='error']

(结尾)

span[class*='error']

(包含)

【讨论】:

    【解决方案2】:

    如果页面有类似的元素,你可以像这样结合Arran所说的:

    driver.find_element_by_css_selector( "input[id^='dp'][class*='nextyear'][class$='error']" )
    

    【讨论】:

      【解决方案3】:

      css=span.error -- 错误

      css=span.warning -- 警告

      css=span.critical -- 严重错误

      上面简单的就是我们可以使用的 CSS 选择器。

      【讨论】: