Skip to main content
Cypress应用

eq

获取元素数组中指定索引的DOM元素。

info

该命令的查询行为与jQuery中的.eq()完全一致。

语法

.eq(index)
.eq(indexFromEnd)
.eq(index, options)
.eq(indexFromEnd, options)

用法

正确用法

cy.get('tbody>tr').eq(0) // 获取'tbody'中的第一个'tr'
cy.get('ul>li').eq(4) // 获取'ul'中的第五个'li'

错误用法

cy.eq(0) // 错误,不能直接链式调用'cy'
cy.getCookies().eq(4) // 错误,'getCookies'不返回DOM元素

参数

index (Number)

表示在元素数组中查找元素的索引位置,从0开始计数。

indexFromEnd (Number)

表示从元素数组末尾开始计算的负索引位置。

options (Object)

传入选项对象以修改.eq()的默认行为。

选项默认值描述
logtrue命令日志中显示该命令
timeoutdefaultCommandTimeout等待.eq()解析的超时时间,超过则超时

生成结果 了解主题管理

  • .eq()返回找到的新DOM元素。
  • .eq()是一个查询命令,可以安全地链式调用其他命令。

示例

索引

查找元素中的第二个元素

<ul>
<li>虎斑猫</li>
<li>暹罗猫</li>
<li>波斯猫</li>
<li>斯芬克斯猫</li>
<li>缅甸猫</li>
</ul>
cy.get('li').eq(1).should('contain', '暹罗猫') // true

对表格的第三行进行断言

<table>
<tr>
<th>品种</th>
<th>起源地</th>
</tr>
<tr>
<td>暹罗猫</td>
<td>泰国</td>
</tr>
<tr>
<td>斯芬克斯猫</td>
<td>加拿大</td>
</tr>
<tr>
<td>波斯猫</td>
<td>伊朗</td>
</tr>
</table>
cy.get('tr').eq(2).should('contain', '加拿大') //true

从末尾开始的索引

查找元素中倒数第二个元素

<ul>
<li>虎斑猫</li>
<li>暹罗猫</li>
<li>波斯猫</li>
<li>斯芬克斯猫</li>
<li>缅甸猫</li>
</ul>
cy.get('li').eq(-2).should('contain', '斯芬克斯猫') // true

规则

要求 了解命令链

  • .eq()需要链式调用返回DOM元素的命令。

断言 了解断言

超时设置 了解超时机制

  • .eq()可能因等待元素存在于DOM中而超时。
  • .eq()可能因等待添加的断言通过而超时。

命令日志

在导航中查找第4个<li>

cy.get('.left-nav.nav').find('>li').eq(3)

以上命令将在命令日志中显示为:

命令日志 eq

当点击命令日志中的eq命令时,控制台会输出以下内容:

console.log eq

另请参阅