如何在cypress中获取元素的属性值?

Sayantan Ghosh |

我正在为网页中的表格进行赛普拉斯测试。页面中元素的示例如下:

<div class="MuiDataGrid-cell MuiDataGrid-cellWithRenderer" data-testid="admission-row">
    <div class="MuiDataGrid-cell" role="cell" data-value="2020-11-21" data-field="admissionDate" data-rowindex="0">21-NOV-2020</div>
    <div class="MuiDataGrid-cell" role="cell" data-value="2020-10-15" data-field="admissionDate" data-rowindex="0">15-OCT-2020</div>
    <div class="MuiDataGrid-cell" role="cell" data-value="2020-09-07" data-field="admissionDate" data-rowindex="0">07-SEP-2020</div>
</div>

在我正在进行的测试中,我想data-value从每个div元素中获取属性并将它们存储在列表中,这就是我正在尝试的方法。

let dateList = [];
cy.get("[data-testid='admission-row']").children().each((element) => {
    cy.get(element).invoke("data-value").then((date) => {
    dateList.push(date);
    });
});

但是,这不起作用,我遇到了错误data-value does not exist in your subject我也尝试过,cy.its而不是cy.invoke失败了。关于这部分代码的任何帮助都将非常有用。

Sayantan Ghosh |

基于@Hiram注释,有效的代码如下:

let dateList = [];
cy.get("[data-testid='admission-row']").children().each((element) => {
    cy.get(element).invoke("attr", "data-value").then((date) => {
    dateList.push(date);
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章