selenium定位元素报错invalid selector: Compound class names not permitted

一、出现情景

脚本:

'''
案例:根据class定位,百度搜索小明
'''
from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
print(driver.title)

driver.find_element_by_class_name("s_ipt").send_keys("小明")
sleep(3)

driver.find_element_by_class_name("bg s_btn").click()
sleep(3)

driver.quit()
print("测试完成")

运行结果:
在这里插入图片描述

二、出现原因

用class属性定位元素时,如果class属性中间有空格,运行时会报错

selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Compound class names not permitted

这个报错是说定位器无效,不允许有复合类名

三、解决方法

class有多个属性时,用class属性时,取一个定位就行
将这行

driver.find_element_by_class_name("bg s_btn").click()

替换成:

driver.find_element_by_class_name("bg").click()

运行结果:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章