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

时间:2017-02-03 13:30:17

标签: codeception codeceptjs

我有各种按钮和几个同名“开始”的按钮。我需要点击第一个找到的具有此名称的按钮(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搜索,例如“开始”。

2 个答案:

答案 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')]