selenium常用定位元素属性详解

1 CSS定位表达式

css 是一种用于发现HTML或XML等文件样式的前端页面语言,主要用于描述页面元素的展现和样式的定义。

css定位方式和xpath定位方式基本相同,只是css定位表达式有其他自己的格式。css定位比xpath定位速度快、稳定。

实例:定位测试网页中,查找第一个div元素中的“确定”按钮

1)使用绝对路径定位元素

css定位表达式:html>body>div>input[value=‘确定’]

使用绝对路径定位属性value的值为“确定”的页面元素,步间通过“>”符号分割,区别路径中的“/”。

不推荐在频繁变化的被测试页面使用绝对路径定位页面元素。

2)使用相对路径定位元素

css定位表达式:input[value=“确定”]

使用相对路径用元素名称和元素属性和属性值进行页面元素的定位

3)使用class名称定位元素

css定位表达式:
input.spread #input是css样式,spread是class名称

使用input页面与安娜苏的class属性名称spread来进行定位,用“.”分割元素名与class属性名,点后面是class属性名称。

2 XPath定位表达式

缺点:

  1. 性能差,定位元素的性能比起大多数其他方法要差;
  2. 不够健壮,XPath会随着页面元素布局的改变而改变;
  3. 兼容性不好,在不同的浏览器下对XPath的实现是不一样的。

优点:
XPath可以通过某个元素找到它的祖先(Ancestors);2. 可以做布尔逻辑判断,例如/button[@value=’submit’ or @name=’tijiao’]

3 XPath定位与CSS定位的比较

XPath定位方式与CSS定位方式相似,XPath定位功能更强大些,但是CSS执行速度快,由于有些浏览器不支持CSS定位方式,并且一般在自动化测试实施过程中使用XPath定位方式要比使用CSS定位方式更普遍,所有建议优先掌握XPath。

1)使用页面元素的文本定位元素

通过text()函数可以定位到元素文本包含某些关键内容的页面元素。
XPath表达式:

  • //a[text()=“搜狗搜索”]
  • //a[.=“搜狗搜索”]
  • //a[contains(.,“百度”)]
  • //a[contains(text(),“百度”)]
  • //a[contains(text(),“百度”)]/preceding::div
  • //a[contains(.,“百度”)]

问题:
如果出现,精确定位不到,可能是有空格,可以使用模糊定位。
在这里插入图片描述

4 使用ID定位

定位语句代码:id名称
user=driver.find_element_by_id(“user”)
user=driver.find_element(by=“id”,value=“user”)

页面id属性都是唯一的,在自动化测试实施过程中,建议与前端开发协商核心页面添加id属性,来提高的程序的可测试性,降低自动化测试的实施难度,提升效率。

5 使用class名称定位

如果在控制台可以查看class名称是否唯一,唯一的话就直接使用名称即可。如果不是唯一的可以使用find_elements_by_class_name进行遍历或数组定位元素。

定位语句代码:
login_btn=driver.find_element_by_class_name(“select_text”)
login_btn=driver.find_element(by=“name”,value=“user”)

实例:以下代码是已做封装
在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值