python - 如何使用 Selenium 和 Python 定位具有多个类名的元素

标签 python selenium xpath css-selectors classname

我正在尝试单击类名称等于 "clean right" 的以下元素:

<li class="clean right"></li>

如何使用 driver.find_element_by_class_name() 找到它

最佳答案

您不能通过 find_element_by_class_name() 将多个类名作为参数传递,这样做您将面临如下错误:

invalid selector: Compound class names not permitted

有多种方法可以解决此用例,您可以使用以下任一方法 Locator Strategies :

  • 如果元素仅通过 classname clean 唯一标识,您可以使用:

    driver.find_element_by_class_name("clean")
    
  • 如果元素只能通过classname right来唯一标识,你可以使用:

    driver.find_element_by_class_name("right")
    
  • 如果 classnamescleanright 都是强制标识元素,可以使用如下:

    driver.find_element_by_css_selector("li.clean.right")
    
  • 您也可以使用 作为替代方案。如下:

    driver.find_element_by_xpath("//li[@class='clean right']")
    

;博士

Invalid selector: Compound class names not permitted error using Selenium


引用

Find div element by multiple class names?

关于python - 如何使用 Selenium 和 Python 定位具有多个类名的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60534244/

相关文章:

Selenium Grid 无法管理私有(private)网络中的节点

javascript - Selenium鼠标滚轮下拉加载所有页面

html - 使用XPath进行HTML解析:扁平化的分层数据

python - 在 Python 中,我如何复制字典列表并过滤特定键,包括嵌套键?

Python:将时间舍入到最接近的秒和分钟

python - 为什么我的 pyglet 应用程序画得很有趣?

javascript - Protractor - 断言评估()值

python - 使用 Python Lxml 解析静态 html 文件中的隐藏元素

SQL XML 选择 where 子句

Python:当第一列不总是相等时,抓取表/获取特定列