如何在 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.

您可以从 W3Schools - CSS Selector Reference

获得有关 CSS 选择器组合的更多信息