I.click()-CodeceptJS 中的选择器 - 如何找到具有特定 innerHTML 的第一个按钮

I.click()-selector in CodeceptJS - how to find first button with specific innerHTML

我有各种按钮和几个同名的按钮"Start"。我需要单击第一个找到的具有此名称 (innerHTML) 的按钮。 使用 jQuery 这适用于 :

$('button:contains(Start):first').click()

它如何与 CodeceptJS 中的 I.click()-Selector 一起使用?我找不到正确的语法并且总是得到:

"invalid selector: An invalid or illegal selector was specified"

这是此函数的 API:https://github.com/Codeception/CodeceptJS/blob/master/docs/webapi/click.mustache

我找到的唯一有效解决方案是:

I.click('//button[1]');

但是这个解决方案很混乱,因为你需要知道这个元素顺序中的确切数字——而且我有很多不同名称的按钮。此外,这不允许我通过 innerHTML 进行搜索,例如 "Start".

你需要为此使用 XPath

//button[1][contains(text(), 'Start')]

您可以像这样使用 I.executeScript

I.executeScript("var elements = document.getElementsByName('Start');elements[0].click();"); or
I.executeScript("var elements = 
document.querySelector(\"button[name*='Start']\");elements[0].click();");