wordpress 高级教程,优化提升,重庆的电子商务网站,小程序搭建公司随着IT行业的发展#xff0c;产品愈渐复杂#xff0c;web端业务及流程更加繁琐#xff0c;目前UI测试仅是针对单一页面#xff0c;操作量大。为了满足多页面功能及流程的需求及节省工时#xff0c;设计了这款UI 自动化测试程序。旨在提供接口#xff0c;集成到蜗牛自动化…随着IT行业的发展产品愈渐复杂web端业务及流程更加繁琐目前UI测试仅是针对单一页面操作量大。为了满足多页面功能及流程的需求及节省工时设计了这款UI 自动化测试程序。旨在提供接口集成到蜗牛自动化测试框架方便用例的设计。 目前在自动化测试的实际应用中接口自动化测试被广泛使用但UI自动化测试也并不会被替代。让我们看看二者的对比
接口自动化测试是跳过前端界面直接对服务端的测试执行效率和覆盖率更高维护成本更低整体而言投出产出比更高因此在项目上的使用更广泛。
而UI自动化测试则是模拟用户在前端页面中的操作行为进行测试虽然在执行过程中易收到其他因素的影响如电脑卡顿浏览器卡顿网速等而导致用例执行失败且后期维护成本较高但是UI自动化测试更贴近用户使用时的真实情况也能够发现一些接口自动化无法发现的bug。
因此在实际项目的自动化测试中通常采用以接口自动化为主、系统稳定后通过UI自动化对重点业务流程进行覆盖的方案。而UI自动化的基础就是元素定位。只有完成了元素定位才可以操作定位到的元素模拟手工测试进行一系列的页面交互比如点击、输入等。
一、常用的元素定位方式
对于web端的UI自动化测试元素定位通常使用selenium提供的以下8种定位方式
id根据id定位是最常用的定位方式因为id具有唯一性定位准确快捷。name通过元素的【name】属性定位会存在不唯一的情况。class_name通过class 属性名称进行定位。tag_name通过标签名定位一般不建议使用。link_text专用于定位超链接元素即a标签需要完全匹配超链接的内容。partial_link_text同样用于定位超链接元素但可以模糊匹配超链接的内容。xpath根据元素路径进行定位分为绝对路径和相对路径可以定位到所有目标元素。css_selectorselenium官方推荐的元素定位方式比xpath效率更高但需要掌握一些css基础。
在实际的项目中更推荐使用xpath和css定位方式这两种可以定位到页面中的所有元素使用限制较小。如果对css没有了解的话推荐使用xpath的方式上手更快如果对css有一定基础的朋友更推荐使用css进行元素定位。
接下来以百度首页为例在实际使用中对各种定位方式进行详细介绍。
同时在这我也准备了一份软件测试视频教程含接口、自动化、性能等需要的可以直接在下方观看就行希望对你有所帮助【公众号互联网杂货铺】免费领取软件测试资料 软件测试工程师大忌盲目自学软件测试真的会毁终生能救一个是一个...... 二、元素定位的实际应用
以百度首页的搜索框为例介绍id、name、class、tag_name四种元素定位方式。 1.id定位
通过id属性对百度首页的的输入框进行定位。
# 通过input标签的id属性进行定位 find_element_by_id(su)
2.name定位
通过name属性对百度首页的输入框进行定位。
# 通过input标签的name属性进行定位 find_element_by_name(wd)
3.class_name定位
通过class属性对百度首页的输入框进行定位。
# 通过input标签的class属性进行定位 ind_element_by_class_name(s_ipt)
4.tag_name定位
通过标签名称来定位这种方式很少会使用因为页面中的同一个标签通常都会重复。
# 通过input标签名进行定位 find_element_by_tag_name(input)
接下来以页面底部的“意见反馈”为例介绍linkText和partialLinkText两种定位方式。 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的路径节点表达式如图 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[idsu])
find_element_by_xpath(//input[namewd])
find_element_by_xpath(//input[classs_ipt])
find_element_by_xpath(//input[autocompleteoff])# 通过文本信息定位(和text_link方法不同不局限于a标签)
find_element_by_xpath(//a[text()意见反馈])
find_element_by_xpath(//span[text()设置])# 通过父级定位子级元素举例百度首页搜索按钮
find_element_by_xpath(//span[classbg 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开发者工具中找到目标元素鼠标右键进行复制即可如下图。 但复制的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([namewd])# 标签和属性组合定位
find_element_by_css_selector(input#kw)
find_element_by_css_selector(input.s_ipt)
find_element_by_css_selector(input[namewd])
find_element_by_css_selector([namewd][autocompleteoff])# 通过父级定位子级元素
find_element_by_css_selector(from#formspan[classbg s_ipt_wr]input)
三、小结
以上就是selenium的各种元素定位方法的简单介绍。项目的实际使用中在定位方法的选择上比较推荐大家采用“id name xpath/css 其它”的顺序进行选择。
虽然UI自动化测试没有接口自动化测试使用广泛但也是自动化测试中不可获取的一部分希望本文能对学习UI自动化的小伙伴产生一定的帮助。