13.自动化测试定位策略

发布时间 2023-12-29 12:41:15作者: 想要暴富的小男孩
  • 不知道应该使用哪种定位方式?
  • 元素定位不到无法解决?

定位方式

 
@startmindmap
* 定位方式
** 通用场景
*** 通用 Web 定位方式
*** js 定位(CSS)
** 特殊场景
*** 弹框-alert()
*** 日期控件
*** 文件上传
*** 其他场景...
@endmindmap

通用 Web 定位方式

 
定位策略描述
class name 通过 class 属性定位元素
css selector 通过匹配 css selector 定位元素
id 通过 id 属性匹配元素
name 通过 name 属性定位元素
link text 通过 <a>text</a> 标签中间的 text 文本定位元素
partial link text 通过 <a>text</a> 标签中间的 text 文本的部分内容定位元素
tag name 通过 tag 名称定位元素
xpath 通过 xpath 表达式匹配元素

选择定位器通用原则

 
  1. 与研发约定的属性优先(class属性: [name='locate'])
  2. 身份属性 id,name(web 定位)
  3. 复杂场景使用组合定位:
    • xpath,css
    • 属性动态变化(id,text)
    • 重复元素属性(id,text,class)
    • 父子定位(子定位父)
  4. js定位

相关章节

 
  • 高级定位-xpath
  • 高级定位-css
  • 执行JavaScript脚本
  • 面试题-定位不到元素

Web 弹框定位

 
  • 场景
    • web 页面 alert 弹框
  • 解决:
    • web 需要使用 driver.switchTo().alert() 处理

下拉框/日期控件定位

 
  • 场景:

    • <input>标签组合的下拉框无法定位
    • <input>标签组合的日期控件无法定位
  • 解决:

    • 面对这些元素,我们可以引入 JS 注入技术来解决问题。

文件上传定位

 
  • 场景:
    • input 标签文件上传
  • 解决:
    • input 标签直接使用 send_keys()方法

具体的章节请循序渐进进行学习。

元素定位总结

 
@startmindmap
title 八大元素定位
scale 10
* 八大元素定位
** id
** name
** className
** TagName

left side

** LinkText
** partialLinkText
** xpath
** cssSelector
@endmindmap