web自动化八大元素定位之xpath

一、8 大元素定位方式:

  • id,当一个元素有 id, 优先使用 id 进行定位,因为 id 在同一个页面当中是唯一的。
  • name,  input元素,因为input元素需要往后端服务发送数据,name 属性作为 key。
  • class name,也是使用比较多的,class, find_element("class name", "s_ipt yts")
  • tag name, 基本不用
  • link text, 主要用来定位超链接
  • partial link text
  • xpath
  • css selector

二、元素定位三大原则

  1. 不管通过什么方式查找元素,请确保你找到的元素要是唯一的,不会存在多个
  2. 如果通过某种方式找元素,能找到两个,怎么办?
    (1)加索引
    (2)使用复合条件 name and class_name and tagname : xpath css
  3. 不论通过什么属性方式查找元素,如果你发现某个属性的值可能是会动态变化的,不要使用该属性定位元素。例如属性值当中包含了数字, p1 table2

三、xpath定位方式

(1)xpath定位

//a[@class="btn btn-sm btn-primary"]

(2)xpath+索引

//a[@class="btn btn-sm btn-primary"][1]

(3)xpath and 组合条件
 

//input[@name="wd" and @class="s_ipt" and @id="kw"]

  (4) 通过爸爸找儿子

//span[@name="XXX"]/input[@name=""]

(5)通过祖先找后代
 

//span[@name="XXX"]//input[@name=""]

(6)语法 *

## *号 代替标签的名称
# 1 任意的元素他的name属性值为wd
//*[@name="wd"] 

# 2 有name属性的任意元素
//*[@name]

(7)通过儿子找父亲

# 儿子找父亲
//input[@name="wd"]/..

# 儿子找爷爷
//input[@name="wd"]/../..

(8)语法 text

//div[@id="s-top-left"]/a[text()="视频"]

(9)语法 contains 包含

//div[@id="s-top-left"]/a[contains(text(),"视频")]

//div[@id="s-top-left"]/a[contains(@class,"s_ipt")]

(9)轴定位

# 找哥哥
//input[@name='wd']//preceding-sibling::span

# 找弟弟
//input[@name='wd']//following-sibling::span

# 找父亲
//input[@name='wd']//parent::span

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值