InvalidSelectorError: Compound class names not permitted报错处理

Posted 111testing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InvalidSelectorError: Compound class names not permitted报错处理相关的知识,希望对你有一定的参考价值。

InvalidSelectorError: Compound class names not permitted报错处理

环境:python3.6 + selenium 3.11 +  chromedriver.exe

我们在解析网页的时候,总是会遇到大量的tag,如何精确定位到这些tag,也是有很多的方法。

今天在用 find_element_by_class_name获取一个节点对象时,报了个错 Compound class names not permitted.
技术图片

原始代码:

selected_div = driver.find_element_by_class_name(‘next-pagination next-pagination-normal next-pagination-medium medium pagination‘)

技术图片

修改后的代码:

 selected_div = driver.find_element_by_css_selector("[class=‘next-pagination next-pagination-normal next-pagination-medium medium pagination‘]")

或者:

 selected_div = driver.find_element_by_css_selector(".next-pagination.next-pagination-normal.next-pagination-medium.medium.pagination")

这两段代码都可以正常获取到所需对象。

 

总结:

在获取包含多个class名称的tag对象时

建议使用:

find_element_by_css_selector(".xx.xxx.xxxxx")

或者

find_element_by_css_selector("[class=‘xx xxx xxxxx‘]")

 

以上是关于InvalidSelectorError: Compound class names not permitted报错处理的主要内容,如果未能解决你的问题,请参考以下文章

Selenium2+python自动化73-定位的坑:class属性有空格转载

.com和.net有啥区别?

com1和com2端口链接异常

转载COM编程入门不得不看的文章 :第一部分 什么是COM,如何使用COM

从 TIBCO BusinessWorks 进程调用 COM/COM+ 对象

在LINUX下怎样使用COM组件