2.2.3 Selenium元素定位大全

本文详述了Selenium中元素定位的各种方法,包括Id、Name、Class_Name、Tag_Name、Link_Text、Partial_Link_Text、XPath和Css定位。此外,还介绍了复数定位、By定位、高级定位策略如父子定位、二次定位以及使用JavaScript和jQuery进行定位。掌握这些技巧能有效提升自动化测试的精度和效率。
摘要由CSDN通过智能技术生成

前言

      web自动化中最核心最难的部分就是元素的定位,然而Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准确抓取到对应元素才能进行后续的自动化控制;下面就对各种元素定位的方式进行总结。

 

八种基本元素定位

Id定位

  • 这是一种最常用的定位方式,假设已知某个元素的id或通过Firebug查找得到id的相关信息,可通过此方法进行定位,如下图:id属性是html中是唯一的,类似于元素的身份证号码,webdriver提供的id定位方法就是通过元素的id属性来查找元素driver.find_element_by_id(“kw”)找到元素所在标签的id属性值

 

Name定位

  • name定位方式将会识别首个name属性等于定位值的页面元素。如果有多个元素的name属性都相同,那么可以使用过滤器来进一步细化定位。默认的过滤器类型是value(也就是value属性)

  • 实例代码:driver.find_element_by_name(“tj_trnews”)

 

 

Class_Name定位

  • html规定class来指定元素的类型,class属性在页面中不是唯一的

  • 实例代码:driver.find_element_by_class_name("bri")通过class属性来定位元素的位置

 

Tag_Name定位

  • driver.find_elements_by_tag_name("input")

  • 通过标签的名称来定位元素的位置,这种定位方法比较困难,因为同一个页面中,相同名称的标签往往比较多

Link_Text定位

  • link_text专门用来定位文本链接

  • driver.find_element_by_link_text("新闻")

  • 使用a标签中链接的文字内容来定位页面上的具体元素

 

Partial_Link_Text定位

  • partial_link_text是link_text的一种补充,有些文本链接较长的时候,可以取文本链接的一部分进行定位,只要这一部分信息可以唯一的标识出这个链接

    driver.find_element_by_partial_link_text(“-腾讯视频")

 

Xpath定位

  • xpath定位方式:表示的由xml(extend markup language 可扩展标记语言,也是由一系列标签所构成,主要是实现数据交换(用于做配置文件))+path,以xml格式的树状结构形式进行递归逐级定位;

  • xpath的定位两种方式:绝对路径定位、相对路径定位;

绝对路径:从顶级父标签到当前标签的整个结构过程称之为绝对路径;

       在使用绝对路径时,如果同级中存在多个相同标签的话,则通过索引进行具体选择(其索引的初始值是从1开始);但是在实际脚本开发过程中,一般不用,因为如果使用绝对路径则跨度较大,只需要页面稍微修改结构则整个定位失败;(稳定性极差)

相对路径:表示的是相对当前标签而言;

  • i.属性定位语法://标签名[@属性名=属性值]

    注意:1.标签名可以具体,也可以使用* (表示的任意标签,定义的范围会比具体的标签更广,可能定位出多个对象) 2.属性值如果是字符串的话则需要使用引号;

  • ii.使用逻辑运算符进行实现多个属性定位:and or not例如://input[@name='uname' and @]但是一般组合

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zemuerqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值