selenium元素定位分为两大模块,单数定位和复数定位。单数定位定位到的是某个具体的元素,复数定位定位到的是具有相同属性的一组元素。这里讲解下python中selenium库的元素定位方法。
定位元素前需先打开浏览器开发者模式,查看页面源码
单数定位,即定位单个元素。selenium单数定位方法有八种,如下:
文本超链接定位分为两种:精确匹配和模糊匹配
精确匹配:匹配相同目标文本的超链接
模糊匹配:匹配包含目标文本的超链接
HTML源码中有多个<div>、<a>、<input>。。。等标签,可根据标签来定位元素,但是同一个页面有很多相同标签导致无法确定元素唯一性,很难确定到具体的元素,该方法使用较少。
备注:层级之间"/"隔开
备注:字符串引号需单双结合,单引号中嵌套双引号,或者双引号中嵌套单引号。
实例二:定位属性不唯一的元素
某元素属性页面存在多个时,可根据属性索引查找元素
注意:xpath索引下角标从1开始
从上图中可见,搜索推荐词和搜索btn在同一个class="form"的div下,故搜索btn为搜索推荐词的兄弟元素,定位如下
备注:层级之间使用">"隔开
实例二:定位属性不唯一的元素
复数定位,是指定位具有相同属性的一组元素。selenium复数定位,也是八种定位方法,和单数定位一样只是element是复数形式elements,如下:
上图中复数八种定位方法的使用和单数定位是一样的,这里不展示详细说明,具体使用参考可单数定位。
当页面有多个相同属性的元素时,可使用复数定位,例: