3

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

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

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

“无效的选择器:指定了无效或非法的选择器”

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

我发现的唯一可行的解​​决方案是:

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

但是这个解决方案令人困惑,因为你需要知道这个元素的确切数字 - 而且我有很多不同名称的按钮。这也不允许我通过诸如“开始”之类的 innerHTML 进行搜索。

4

2 回答 2

2

你可以这样使用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();");
于 2017-06-20T07:13:23.427 回答
1

您需要为此使用 XPath

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

于 2017-02-03T13:50:34.213 回答