Selenium元素定位
通过id或者name定位
通常来讲,一个网页的id和name都是唯一的,所以元素具有id和name属性,那么可以直接使用id和name进行定位。
driver.find_element(By.ID, 'kw')
driver.find_element(By.NAME, 'kw')
或者
driver.find_element_by_id('kw') ,这个方法实际就是调用的find_element实现的
通过XPATH定位
xpath可以用于selenium和appium进行元素定位,比较万能;但有一个缺点是,xpath定位比css selector定位速度要慢很多,因为xpath是针对所有元素从头到尾的一点点遍历
xpath的常用语法(表达式):
1、//*[@id='kw'] 【根据某个属性定位xpath语法格式】在所有元素中查找id值为kw的元素,查找其他属性的话直接按格式替换掉id和对应的值就可以
其中 //*代表所有元素,
2、/div/a 查找div下所有子元素a(注意这里仅仅是子元素,不包括子元素的子元素)
/div/a[1] 如果查找到的子元素a不是唯一,那么可以使用a[1]表示获取第一个子元素a
/div/a[last()] 表示获取最后一个子元素a
/div/a[last()-1] 获取倒数第二个子元素a
3、/div//a 注意这里的变成了‘//’,表示查找div下的所有子孙元素a,包括子元素的子元素,区分子元素和子孙元素
4、/ 表示从跟节点获取