selenium自动化(2)之八大元素定位

在浏览器中所有被操作的元素都是webelement。元素=html 标签。(这个时候前端知识就派上用场了)
a 标签:超链接 可以被点击
img图片格式
input文本输入,文本上传
button 按钮
而通常意义上的自动化时是基于标签的属性定位标签。

在浏览器网页中如何精准定位需要的元素?一般通过以下八大方法

  1. id—>基于元素属性中id的值来定位,类似于身份证号,是唯一的(常用)

  2. name—>基于元素属性中name的值来定位,类似于身份证号上的名字,可能重复

  3. link text—>主要用于超链接进行定位

  4. Partial link text—>link text的模糊查询,当模糊查询匹配到多个时,取第一个

  5. Class name—>基于元素样式进行定位,容易遇到重复的

  6. Tag name—>标签名进行定位,重复度最高,只有在需要二次筛选时使用

  7. Cssselector—>基于class属性Css selector 选择表达式选择元素:
    1),根据tag前面加.-》根据 tag名 选择元素的 CSS Selector 语法非常简单,直接写上tag名即可
    2),根据id前面加#:根据id属性 选择元素的语法是在id号前面加上一个井号: #id值
    3),根据class属性 选择元素的语法是在 class 值 前面加上一个点: .class值

  8. xPath—>目前应用最多的,基于页面结构进行的定位。
    两种方式:a.绝对路径->从根路径一层一层数;
    b.相对路径->基于匹配原则,依照xpath的语法。例如://[@id="kw”] -> // 表示从根路径开始查找; 表示任意元素;[ ] 表示筛选条件(查找函数);@ 表示根据属性查找 例如@id=‘kw’ 表示根据id值为kw的属性查找。
    如果基于[text()=’文本内容’]定位元素—>例如://a[text()='登录’]

    当某些元素无法直接定位时,可以通过
    a. 定位子级元素的父级来获取元素 /… ;
    b. contains函数方法定位 —> //*[contains(@id,'kw’)]
    在web自动化中,元素定位的稳定性很重要,一般需要校验找到的元素。所以xpath的稳定性很高,用的很多,而且需要会手写xpath,因为copy的有时候会不准确。
    在xpath前面加 // , 表示从当前节点往下寻找所有的后代元素,不管它在什么位置。

通用的定位元素方式:
使用By类的封装的方法,导入By类包-》find_element(By.id,具体的值)

你可能感兴趣的:(测试,selenium,定位)