如何使用使用Spock / Geb的jQuery选择第二个Class元素

vij*_*jar 3 jquery jquery-selectors spock geb

我进行了大量研究以找出以下问题的答案,但无济于事。

<div>在HTML的一个标签中有以下类。

<button type='button' class='btn btn-navbar document-collapse pull-right' data-target='#document_521f7592388723hsjd73hd' data-toggle='collapse'>
Run Code Online (Sandbox Code Playgroud)

我在其他几个<div>标签中没有更多的类,但是它们使用相同的类名。

<button type='button' class='btn btn-navbar document-collapse pull-right' data-target='#document_521f75032f23104747ed753c' data-toggle='collapse'>
Run Code Online (Sandbox Code Playgroud)

默认情况下,第一个<div>展开,其他所有<div>折叠。我需要能够单击第二个按钮并显示其他隐藏的按钮和控件。

我尝试了以下方法,但是没有用。

expandOrderLink(wait:true)  { $(".btn.btn-navbar.document-collapse.pull-right:nth-child(2)") }
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以查找具有相同名称的所有类元素,然后选择所需的元素(在我的情况下为第二个)。

另请注意,我无法使用任何其他属性,因为具有包含加密信息的动态内容(例如#document_521f75032f23104747ed753c)

raj*_*wat 5

尝试这样的事情

  $(".btn.btn-navbar.document-collapse.pull-right").eq(1);
Run Code Online (Sandbox Code Playgroud)


erd*_*rdi 5

您的问题具有误导性,因为您询问如何使用jQuery在索引处选择元素,但是在代码示例中,您使用的是Geb-我建议您更改问题的图块。Geb的Navigator API与jQuery不兼容,就像jQuery一样

要选择示例中的第二个元素,您可以编写:

expandOrderLink(wait:true)  { 
    $(".btn.btn-navbar.document-collapse.pull-right", 1) 
}
Run Code Online (Sandbox Code Playgroud)

查阅手册中有关索引和范围的部分。

您还可以使用下标运算符简单地访问元素:

expandOrderLink(wait:true)  { 
    $(".btn.btn-navbar.document-collapse.pull-right")[1]
}    
Run Code Online (Sandbox Code Playgroud)