我有各种按钮和几个同名“开始”的按钮。我需要点击第一个找到的具有此名称的按钮(innerHTML)。 使用jQuery,这适用于:
$('button:contains(Start):first').click()
它如何与I.click() - CodeceptJS中的选择器一起使用?我找不到合适的语法,总是得到:
“无效的选择器:指定了无效或非法的选择器”
以下是此功能的API:https://github.com/Codeception/CodeceptJS/blob/master/docs/webapi/click.mustache
我找到的唯一可行解决方案是:
I.click('//button[1]');
但是这个解决方案令人困惑,因为你需要知道这个元素顺序的确切数字 - 而且我有很多不同名称的按钮。这也不允许我通过innerHTML搜索,例如“开始”。
答案 0 :(得分: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();");
答案 1 :(得分:1)
您需要使用XPath
//button[1][contains(text(), 'Start')]