Selenium python,使用css只选择两个类

Posted

技术标签:

【中文标题】Selenium python,使用css只选择两个类【英文标题】:Selenium python, use css to select only two class 【发布时间】:2021-08-26 16:55:37 【问题描述】:

假设我有一个如下所示的 html

<div class="first second">
    Right!
</div>
<div class="first second third fourth">
    Wrong!
</div>
<div class="first second">
    Right!
</div>

如果我尝试使用 css 定位第一个和第三个 div:

driver.find_elements_by_class_name("first, second")

我没有在我的列表中获得 2 个元素,而是获得了所有三个 div,因为第二个 div 实际上包含这些类和其他一些......我该如何限制它,只找到 &lt;div&gt;s :

class = "first second"

【问题讨论】:

你有什么标签包含first, second 第三个标签也包含同样的东西。 你不能使用 Xpath? 【参考方案1】:

如果您需要通过 xpath 获取它们,可以使用它:

driver.find_elements_by_xpath(".//div[@class='first second']")

【讨论】:

【参考方案2】:
div[class = 'first second']

应该可以。因为它是完全匹配的。

CSS_SELECTOR一起使用

driver.find_elements(By.CSS_SELECTOR , "div[class = 'first second']")

【讨论】:

以上是关于Selenium python,使用css只选择两个类的主要内容,如果未能解决你的问题,请参考以下文章

python+selenium自动化测试——CSS选择元素

使用 Selenium 提取元素的 CSS 选择器

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

selenium-51job自动化测试(css选择器选择元素)

防止在 Python 驱动的 PhantomJS/Selenium 中下载 CSS/其他资源

Python+Selenium练习篇之5-利用css定位元素