三白草

首页 » 常识 » 问答 » UI自动化实战元素定位
TUhjnbcbe - 2021/7/10 21:13:00
北京白癜风治疗去哪里 http://yyk.39.net/bj/zhuanke/89ac7.html

我们在做UI自动化测试前,首先要搞清楚UI自动化测试是怎么实现的,接下来才能见招拆招,解放双手,提高自己的测试效率(该加的班一分钟也别想少)。

UI自动化要做的,其实就是模拟鼠标和键盘去操作网页上的控件,从而实现测试的行为,这里关键的一步就是要找到元素,然后去点击/输入。常用的几种元素定位方式如下:

#ID定位-find_element_by_id()

参考W3C标准,一个页面下元素id一般是唯一的,这种理想情况下,对UI自动化测试是非常有利的,但是并不是所有前端研发都能按照规范来,总会有人id复用或者不用。还有一种情况是元素id不固定,是个随机值。

#Name定位-find_element_by_name()

#ClassName定位-find_element_by_class_name()

#TagName定位-find_element_by_tag_name()

#LinkText定位-find_element_by_link_text()

#PartialLinkText定位-find_element_by_partial_link_text()

是一种模糊匹配,字符串可以输入其中一部分,也可以输入全部。

#XPath定位-find_element_by_xpath()

最基本的元素定位方式,可以是绝对路径(后期维护成本高),也可以是相对路径(参考菜鸟教程学习,写法多样灵活)。

#CSSSelector定位-find_element_by_css_selector()

从语法上看和xpath类似,但比xpath简洁很多,在后期测试脚本执行时元素定位效率也高,推荐用。

#扩展一#以上几种方法并不能保证我们在测试过程中一定能成功定位到元素,比如伪元素,比如元素隐藏不可见,只读等情况。这时就需要祭出大招,写JS脚本去新增或者修改元素属性,协助定位元素(参考菜鸟教程学习js知识)。

#扩展二#元素定位不到的大致原因,通过以上9种方式去破解:

1.元素定位方式不正确(定位错误、元素不唯一)

2.网络延迟,元素未加载完成(加入等待时间)

3.表单嵌套原因(switch_to_frame(frame))

4.打开了新的窗口(switch_to_window(newhandles))

5.元素未达到可见条件(需鼠标悬停)

预览时标签不可点收录于话题#个上一篇下一篇
1
查看完整版本: UI自动化实战元素定位