初学自动化测试,一般会遇到以下几个问题,这里针对自动化测试的定位做出策略判断,更好的做出决策。
- 不知道应该使用哪种定位方式
- 元素定位不到如何解决
# 根据场景选择定位方式
除了selenium提供的八大定位,还可以使用js/css定位
# 选择定位器通用原则
按优先级排列,从上往下优先级递减
- 与研发约定的属性优先(class属性:[name='locate'])
- 身份属性id ,name(web定位)
- 复杂场景使用组合定位:
- xpath, css
- 属性动态变化(id, text)
- 重复元素属性(id, text, class)
- 父子定位(子定位父亲)
- js定位
# web弹窗定位
场景:web页面alert弹框
解决:web需要使用driver.switchTo().alert()处理
# 下拉框/日期控件定位
场景:
<input>标签组合的下拉框无法定位<input>标签组合的日期控件无法定位
解决:
- 面对这些元素,我们可以用JS注入解决问题
# 文件上传定位
场景:
- input标签文件上传
解决:
- input标签直接使用send_keys()方法