2024年最新8年阿里测试经验之谈 —— 用UI自动化测试实现元素定位(1),资深大牛带你了解源码

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

通过input标签的class属性进行定位 ind_element_by_class_name(‘s_ipt’)


### 4.tag\_name定位


通过标签名称来定位,这种方式很少会使用,因为页面中的同一个标签通常都会重复。



通过input标签名进行定位 find_element_by_tag_name(‘input’)


接下来,以页面底部的“意见反馈”为例,介绍linkText和partialLinkText两种定位方式。




![](https://img-blog.csdnimg.cn/img_convert/a3a8e0cb5a86b3b68bf2d384c81f8024.webp?x-oss-process=image/format,png)



### 5.linkText定位


通过a标签的文本信息进行定位,仅用于定位超链接a标签。



通过a标签的文本信息进行定位 find_element_by_link_text(‘意见反馈’)


### 6.partialLinkText定位


​通过对a标签的部分文本信息模糊匹配进行定位。



通过对a标签的部分文本信息模糊匹配进行定位 find_element_by_partial_link_text(‘反馈’)


### 7.xpath定位


xpath定位方式是通过页面元素的属性和路径进行元素定位,理论上可以对页面中所有的元素精选定位。下面介绍xpath的几种定位方式。


首先,介绍一下xpath的路径节点表达式,如图:




![](https://img-blog.csdnimg.cn/img_convert/3798cf8d30228f2f44941f99a31ab3c6.webp?x-oss-process=image/format,png)



​**(1) xpath绝对路径定位**


仍已百度首页的搜索框为例进行介绍。



find_element_by_xpath(‘/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input’)


通常情况下,不会选择使用xpath绝对路径进行元素定位,原因有二:一是绝对路径繁琐冗长,影响运行速度;二是涉及的层级较多,任何一个层级发生变化都会导致定位失败,需要重新进行修改,不利于后期维护。


**(2) xpath相对路径和元素属性结合定位**


若目标元素的某个属性具有唯一性,则可直接对目标元素进行定位;否则,需要在目标元素附近寻找一个具有唯一性的元素,然后通过二者的层级关系进行定位。


接下来,依然以百度首页的页面元素为例,对xpath定位的方式举例说明。



通过元素属性定位百度首页的搜索框

find_element_by_xpath(“//input[@id=‘su’]”)
find_element_by_xpath(“//input[@name=‘wd’]”)
find_element_by_xpath(“//input[@class=‘s_ipt’]”)
find_element_by_xpath(“//input[@autocomplete=‘off’]”)

通过文本信息定位(和text_link方法不同,不局限于a标签)

find_element_by_xpath(“//a[text()=‘意见反馈’]”)
find_element_by_xpath(“//span[text()=‘设置’]”)

通过父级定位子级元素,举例百度首页搜索按钮

find_element_by_xpath(“//span[@class=‘bg s_btn_wr’]/input”)

通过子级定位父级元素,举例百度首页百度热榜的换一换

find_element_by_xpath(“//span[text()=‘换一换’]/…”)

通过contains方法模糊匹配定位,举例百度首页搜索按钮

find_element_by_xpath(“//input[contains(@class,‘s_btn’)]”)
find_element_by_xpath(“//a[contains(text(),‘反馈’)]”)


**(3) 浏览器复制xpath**


除了上述两个方法之外,还有一个简单的方法,就是在浏览器的F12开发者工具中找到目标元素,鼠标右键进行复制即可,如下图。




![](https://img-blog.csdnimg.cn/img_convert/e20dcf704b04c864081a928b6f91fd26.webp?x-oss-process=image/format,png)



但复制的xpath路径可能会很冗长,还是推荐大家根据需求自己写目标元素的xpath路径。


### 8.css\_selector定位


**(1) css定位简介**


css\_selector定位(下文简称css定位),它的定位方式,利用选择器进行的。在CSS 中,选择器是一种模式,用于选择需要添加样式的对象。通过css进行元素定位,理论上也是可以定位到页面中的所有元素的。


和xpath相比,css的语法更简洁、定位速度更快,但是css的语法比xpath较为复杂一些,相对难记。


**(2) css定位实例**


下面,仍以百度首页搜索框为例,对css定位方式举例说明。



通过id定位,id名前加#

find_element_by_css_selector(“#kw”)

通过class定位,class名前加.

find_element_by_css_selector(“.s_ipt”)

通过标签定位

find_element_by_css_selector(“input”)

通过其它属性定位

find_element_by_css_selector(“[name=‘wd’]”)

标签和属性组合定位

find_element_by_css_selector(“input#kw”)
find_element_by_css_selector(“input.s_ipt”)
find_element_by_css_selector(“input[name=‘wd’]”)
find_element_by_css_selector(“[name=‘wd’][autocomplete=‘off’]”)

通过父级定位子级元素

find_element_by_css_selector(“from#form>span[@class=‘bg s_ipt_wr’]>input”)


### 三、小结


以上,就是selenium的各种元素定位方法的简单介绍。项目的实际使用中,在定位方法的选择上,比较推荐大家采用“id > name > xpath/css > 其它”的顺序进行选择。


虽然UI自动化测试没有接口自动化测试使用广泛,但也是自动化测试中不可获取的一部分,希望本文能对学习UI自动化的小伙伴产生一定的帮助。




![img](https://img-blog.csdnimg.cn/img_convert/d080a8a91007b5656d03c0657d251e75.png)
![img](https://img-blog.csdnimg.cn/img_convert/f0bdecfadd12ac8e659bef8962b393e5.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618608311)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618608311)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值