我们在做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.元素未达到可见条件(需鼠标悬停)
预览时标签不可点收录于话题#个上一篇下一篇