如何在 Playwright 中单击 "type=submit" 按钮
How to click a "type=submit" button in Playright
我尝试了任何可能的方法来点击表单中的“type=submit”按钮,但它没有点击按钮,唯一的方法是使用“text ='Register'”但我不能使用文本,因为表单语言可能会根据用户选择的 UI 语言而改变。
public Task ClickRegister() => Page.Locator("type=submit").ClickAsync();
这是FE代码:
<button _ngcontent-yyv-c173="" type="submit" class="btn btn-primary"> Register </button>
我正在使用 Visual Studio
这不是一个有效的选择器。你能试试 BUTTON[type="submit"]
吗?
有几种方法可以解决这个问题,以下任何一种都可以:
- button.btn(元素按钮和部分classbtn的组合)
- button.btn.btn-primary(元素和完整的组合 class btn btn-primary)
- button.btn-primary(classbtn-primary)
的元素和独特部分的组合
- button.btn.btn-primary[type="submit"](元素组合,完整 class 和属性 type)
- .btn.btn-primary(只是完整的 class)
如果您的页面右侧有“注册”之类的按钮,左侧有“取消”之类的按钮,横幅上有“接受”cookies 按钮,您的 CSS 选择器 button[type=submit] 可能很脆弱,因此我建议使用完整的 class 作为唯一标识符,例如button.btn-primary 用于注册,或 button.btn-primary.pull-left 用于取消。此外,您可能会发现开发人员已将按钮放在 class 行中,层叠在 DOM 中,您可以利用它来减少脆弱性,例如.btn-row 按钮.btn-primary.
获得有关 CSS 选择器组合的更多信息
我尝试了任何可能的方法来点击表单中的“type=submit”按钮,但它没有点击按钮,唯一的方法是使用“text ='Register'”但我不能使用文本,因为表单语言可能会根据用户选择的 UI 语言而改变。
public Task ClickRegister() => Page.Locator("type=submit").ClickAsync();
这是FE代码:
<button _ngcontent-yyv-c173="" type="submit" class="btn btn-primary"> Register </button>
我正在使用 Visual Studio
这不是一个有效的选择器。你能试试 BUTTON[type="submit"]
吗?
有几种方法可以解决这个问题,以下任何一种都可以:
- button.btn(元素按钮和部分classbtn的组合)
- button.btn.btn-primary(元素和完整的组合 class btn btn-primary)
- button.btn-primary(classbtn-primary) 的元素和独特部分的组合
- button.btn.btn-primary[type="submit"](元素组合,完整 class 和属性 type)
- .btn.btn-primary(只是完整的 class)
如果您的页面右侧有“注册”之类的按钮,左侧有“取消”之类的按钮,横幅上有“接受”cookies 按钮,您的 CSS 选择器 button[type=submit] 可能很脆弱,因此我建议使用完整的 class 作为唯一标识符,例如button.btn-primary 用于注册,或 button.btn-primary.pull-left 用于取消。此外,您可能会发现开发人员已将按钮放在 class 行中,层叠在 DOM 中,您可以利用它来减少脆弱性,例如.btn-row 按钮.btn-primary.
获得有关 CSS 选择器组合的更多信息