定位某元素,用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')