赛普拉斯获取包含我具有给定数据属性的元素的索引行
Cypress get index row that contain the element I have with the given data attribute
我有一个垫子-table
<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>
我需要知道具有 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
});
但给我索引 0。应该给索引 1。
所以也许只是给出单元格的一些索引而不是行的索引?
知道如何获取行索引吗?
做。我需要使用 cy.parent ?
编辑:
如果我这样做 cy.get("mat-table").find("[data-mat-icon-name='pinned']").should("exist");
该元素存在于 Dom
来自 jQuery 文档 .index()
If no argument is passed to the .index() method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements.
但是您找到的 <mat-icon>
单独存在于单元格中。
您需要导航到父行并找到它在同级中的索引,
cy.get('mat-table')
.find('[data-mat-icon-name=pinned]')
.parents('mat-row')
.invoke('index')
.then((i) => {
cy.log(i); // prints 1
});
我有一个垫子-table
<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>
我需要知道具有 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
});
但给我索引 0。应该给索引 1。
所以也许只是给出单元格的一些索引而不是行的索引?
知道如何获取行索引吗?
做。我需要使用 cy.parent ?
编辑:
如果我这样做 cy.get("mat-table").find("[data-mat-icon-name='pinned']").should("exist");
该元素存在于 Dom
来自 jQuery 文档 .index()
If no argument is passed to the .index() method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements.
但是您找到的 <mat-icon>
单独存在于单元格中。
您需要导航到父行并找到它在同级中的索引,
cy.get('mat-table')
.find('[data-mat-icon-name=pinned]')
.parents('mat-row')
.invoke('index')
.then((i) => {
cy.log(i); // prints 1
});