Inê*_*mes 2 indexing get row cypress
我有一张垫子桌
<mat-row>
<mat-cell>Firstname</mat-cell>
<mat-cell>Lastname</mat-cell>
<mat-cell>Age</mat-cell>
</mat-row>
<mat-row>
<mat-cell>Jill</mat-cell>
<mat-cell>Smith</mat-cell>
<mat-cell> <mat-icon data-mat-icon-name="pinned"> </mat-cell>
</mat-row>
Run Code Online (Sandbox Code Playgroud)
我需要知道具有的元素的行索引data-mat-icon-name='pinned'
我尝试了下面的代码:
cy.get("mat-table").find("[data-mat-icon-name='pinned']").invoke("index").then((i) => {
cy.log(i); // prints 0. Should print 1
});
Run Code Online (Sandbox Code Playgroud)
但给我索引 0。应该给我索引 1。
那么也许只是给出单元格的一些索引而不是行的索引?
知道如何获取行索引吗?
做。我需要使用 cy.parent 吗?
编辑:
如果我做cy.get("mat-table").find("[data-mat-icon-name='pinned']").should("exist");
元素存在于Dom中
小智 7
来自 jQuery 文档.index()
如果没有参数传递给 .index() 方法,则返回值是一个整数,指示 jQuery 对象中第一个元素相对于其同级元素的位置。
但<mat-icon>你发现的东西本身就在细胞里。
您需要导航到父行并找到它在同级行中的索引,
cy.get('mat-table')
.find('[data-mat-icon-name=pinned]')
.parents('mat-row')
.invoke('index')
.then((i) => {
cy.log(i); // prints 1
});
Run Code Online (Sandbox Code Playgroud)