find_elements_by_class_name定位不到元素,no such element: Unable to locate element: {“method“:“css selector

定位某元素,用xpath定位不到,没有id就用class定位,由于该元素在一页面中有多个,所以就想先打印看有多少个该class元素

a = self.driver.find_elements_by_class_name('qui_btn ww_btn js_add_member')
print(len(a))

用以上代码,打出来的元素只有0个,这不可能
后来换了以下2种写法,打印出来有3个

a = self.driver.find_elements(By.XPATH, "//*[@class='qui_btn ww_btn js_add_member']")
print(len(a))
a = self.driver.find_elements(By.CLASS_NAME,'qui_btn.ww_btn.js_add_member')
print(len(a))

不打印,直接运行,报错如下

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".qui_btn ww_btn js_btn_save"}

解决方法:
find_elements_by_class_name这种写法的话,元素名称不能有空格,把空格换成.就可以了,如下

self.driver.find_elements(By.CLASS_NAME,'qui_btn.ww_btn.js_add_member')

你可能感兴趣的:(python,selenium,python,selenium)