Error: Compound class names not permitted 定位时遇到复合class名称报这样得错误怎么解决?
环境:python3.7 + selenium 2.48.0. + firefoxdriver.exe
今天我在使用 find_element_by_class_name 获取一个节点对象时,出现报错 :Compound class names not permitted.
需要解析的页面结构:

原始代码
element=driver.find_element_by_class_name("form-control ng-pristine ng-untouched ng-valid ng-empty ng-valid-email")
运行后台报错了

解决办法(修改后的di代码)
element=driver.find_element_by_css_selector(".form-control.ng-pristine.ng-untouched.ng-valid.ng-empty.ng-valid-email")
或者
element=driver.find_element_by_css_selector("[class='form-control.ng-pristine.ng-untouched.ng-valid.ng-empty.ng-valid-email']")
这两个方法都可以正常获取到所需对象。
总结
在获取包含多个class名称的tag对象时,建议使用:
方法一: find_element_by_css_selector(".xx.xxx.xxxxx")
或者
方法二: find_element_by_css_selector("[class=‘xx xxx xxxxx’]")
我这个环境使用的是方法一,亲测比较好使!
版权声明:本文为weixin_44898291原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。