2_webdriver8种基本元素定位

补充:selenium定位30种

参考 https://blog.youkuaiyun.com/qq_32897143/article/details/80383502


进入正题:

webdriver的8种基本定位

先了解html的基本知识

<!-- id名为root的div -->
<div id="root">
    <!-- class类名为top的div -->
    <div class="top"></div>
    <!-- 标签元素p,表示一个段落 -->
    <p>段落1</p>
    <!-- 超链接 -->
    <a href="javascript:0;">点我</a>
</div>
<!-- from表单 -->
<form>
    <!-- 一个输入框,name属性为username -->
    <!-- name属性一般用于from表单中 -->
    <input type="text" name="username"/>
</form>
id定位,推荐

// 匹配 id名 class类名 tag name标签名
find_element(“id”,“root”)

类名class定位

find_element(“class name”,“top”)

标签名定位

find_element(“tag name”,“p”)

name属性定位

find_element(“name”,“username”)

超链接定位(包含2种)

定位 a超链接 所包含的文本内容 "点我"

// 全匹配
find_element(“link text”,“点我”)
// 模糊匹配
find_element(“partial link text”,“我”)

xpath定位(万能的,推荐)

// 表示相对路径 /表示绝对路径 ./表示当前路径
/绝对路径必须一级一级下去,不能跨越
//相对路径就不需要一级一级下去
*表示任意元素,如果知道目标元素标签名,可以直接写
[@]用于属性的匹配
[n]用于匹配第n个元素,(如果只有1个可以省略)

//表示任意元素,只要id名为root的元素,它的下一级div取第1个
find_element(“xpath”,"//
[@id=‘root’]/div[1]")
//知道开头的元素标签名
find_element(“xpath”,"//div[@id=‘root’]/div[1]")

css selector样式定位

通过id定位 class类名定位

find_element(“css selector”,"#id")
find_element(“css selector”,".class")

> 表示所有子元素
空格 表示所有后代元素
[属性名=‘属性值’] *=表示模糊匹配
:nth-child(0)第一个子元素

find_element(“css selector”,"#form > input[type=‘hidden’]:nth-child(11)")

find_element和find_elements

两者的区别就是前者会返回找到的第一个元素,找不到会报异常
后者会返回所有找到的元素,以[]的形式返回,没有就返回空[]
对于异常,可以通过try catch处理

总结

先看目标元素有没有id名,有id用id,最快最简单。
对于css属性不太了解,可以通过xpath定位,不过性能差些。

补充:万能定位方法

通过xpath定位,但是一般是/绝对定位,不推荐,能手写就手写!!!在这里插入图片描述

细节

1、对于find_element 找不到元素会报异常
2、对于python的[] () {} 的区别
[]:列表,底层是动态链表数组,可以动态增加
():元组,底层是数组,定义后就不可以修改内容
{}:字典,就是类似json对象 {‘name’:‘wly’}键值对存储
参考: https://www.cnblogs.com/xuxiaolu/p/4726064.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值