Day 3:定位策略进阶

适用人群:掌握基础定位,想应对更复杂的页面结构
预计耗时:10 分钟
目标:学会 CSS 选择器、XPath、getByRole 等进阶定位方法


今天学到的定位方法

定位方法语法示例适用场景
getBylocator#divWithBeforePseuodoEl / //div[contains(text(),‘Inner’)]CSS 选择器或 XPath
getBylocatorNthspan
getByTextExactspannn精确文字匹配
getByRoleByCheckBoxabcd按角色定位 checkbox
getByRoleByRadioKey Up按角色定位 radio
getByPlaceholderEnter Email占位符定位

上传并执行 day03_step.xlsx

文件包含 2 个用例。


spandiv 用例

页面:spandiv.htm,包含各种 span 和 div 结构

步骤定位方式定位值说明
CSS 定位getBylocator#divWithBeforePseuodoElCSS ID 选择器
XPathgetBylocator//div[contains(text(),‘Inner’)]XPath 层级定位
第 N 个getBylocatorNthspan
精确文本+存储getByTextExact → 存储变量spannn → actualText取文本并存为变量
断言验证assert@actualText

checkbox 用例

页面:label.htm + keypress.htm,包含标签化复选框、单选框和占位符输入框

步骤定位方式定位值说明
打开表单页navigateTolabel.htm带标签和占位符的页面
勾选复选框getByRoleByCheckBoxabcd按角色定位 checkbox
输入搜索框getByPlaceholderEnter Email按 placeholder 定位
打开单选页navigateTokeypress.htm切换页面
选中单选框getByRoleByRadioKey Up按角色定位 radio


getBylocator 详解

getBylocator 是最灵活的定位方式,支持 CSS 和 XPath 两种语法。

CSS 选择器示例

写法含义
#btnIdid 为 btnId 的元素
.btnClassclass 为 btnClass
div > spandiv 的直接子元素 span

XPath 示例

写法含义
//div[@class=x]所有 class=x 的 div
//input[@name=username]name=username 的 input
//button[contains(text(),Submit)]文字含 Submit 的按钮

N 后缀定位

方法说明
getBylocatorNthselector
getByFirstlocator第一个元素
getByLastlocator最后一个元素

动手练习

  1. 用 getBylocator 写一个 XPath 选中 spandiv 页面中的 inner 元素
  2. 用 getByRoleByCheckBox 在 label.htm 页面勾选some bold text复选框
  3. 用 getByPlaceholder 定位 label.htm 页面的Enter Password输入框

执行结果


下一篇预告:Day 4 — 元素操作基础