我对赛普拉斯测试比较陌生。
我有一个表,其中有多行包含特定文本,我只想获取第一行。
到目前为止,我想出的唯一方法是遍历表中的所有行以查找文本。这不仅丑陋,而且还阻止测试仅作用于它找到的第一行。
这是我有点笨拙的代码:
const SELECTOR = {
dataTableBody: '.p-datatable-tbody'
} as const;
cy.assertVisible(SELECTOR.dataTableBody);
cy.then(() => {
cy.get(SELECTOR.dataTableBody).then($tbody => {
cy.get(SELECTOR.dataTableBody).find('tr').each($row => {
if (($row.find('td:nth-child(1)').text().trim()) === 'MyText') {
//I only want it to get here on the FIRST row that has 'MyText'
}
});
});
});
谢谢!
.contains()
因为您搜索一些文本,所以我会使用。.contains()
即使有许多匹配元素,也始终只返回第一个元素。这是一个简单的示例表
这是我能想到的最简单的命令序列
但它返回行中任意位置具有“MyText”的行。
如果您只想检查第一列,请指定
td:nth-child(1)