find_element和find_elements的区别
在selenium中我们有时候也会看到这样定位元素的方法 driver.find_elements(By.CLASS_NAME, 'YT')
, 如果要用到这样的写法,是需要导入By这个模块也就是from selenium.webdriver.common.by import By
;By模块,用来定位元素的。和另外一个find的功能一样,就是写法不一样。
区别就是:当element变成elements时,写法不变,就是返回的元素由返回单个元素变成了返回一个数组。
find_element 是查找一个元素对象并返回元素对象。当页面有多个元素对象时返回第一个找到的元素。
find_elements是查找页面所有元素并返回元素对象列表可以通过下标获取元素对象。a[0] 即第一个元素对象与find_element等效。
用法示例
driver.find_element(By.ID, '321212').click() # 相等于 driver.find_element_by_id('321212').click()
driver.find_element(By.CLASS_NAME, 'foo').click() # 相等于 driver.find_elements_by_class_name('foo').click()
driver.find_elements(By.ID, '52410').click() # 相等于 driver.find_elements_by_id('52410').click()
driver.find_elements(By.CLASS_NAME, 'aoo').click() # 相等于 driver.find_elements_class_name('aoo').click()