# 选择定位策略 > **何时使用**: 当需要决定对某个元素使用哪种 Playwright 定位方法时 ## 快速回答 对所有具有语义 HTML 角色(按钮、链接、标题、表单字段、对话框)的元素使用 `getByRole()`。对于表单字段回退到 `getByLabel()`,对于纯文本内容使用 `getByText()`,而 `getByTestId()` 仅作为最后手段,用于没有无障碍角色的自定义组件。 ## 决策流程图 ``` 开始:你需要定位一个元素 | v 该元素是否有语义角色? (button、link、heading、textbox、checkbox、combobox、dialog、img、row、cell、navigation……) | +-- 是 --> 使用 getByRole('role', { name: '无障碍名称' }) | | | +-- 需要缩小范围?从父级角色定位器开始链式调用: | getByRole('navigation').getByRole('link', { name: '...' }) | +-- 否 | v 它是否是一个带有可见