我有一系列菜单项,可以滚动到页面上的不同元素。
我想循环遍历每个项目并确保它滚动到页面上的正确元素。为此,我想获取
href
值用作滚动到的目标元素。
第一次有效,但随后出现错误:
TypeError: Timed out retrying after 4000ms: Cannot read properties of undefined (reading 'toLowerCase')
这很奇怪,因为我没有在代码中使用该函数(我猜它在 Cypress 自身内部)。
有人知道这样做的正确方法吗?
我的 HTML 看起来像:
<a class="subnav_item" href="#item-1">Item 1</a>
<a class="subnav_item" href="#item-2">Item 2</a>
<a class="subnav_item" href="#item-3">Item 3</a>
我的赛普拉斯测试如下:
cy.get(".subnav_item").each(($submenuItem) => {
let targetEl = cy.get($submenuItem).invoke('attr', 'href');
cy.get($submenuItem).click();
cy.wait(500);
cy.get(targetEl).should('be.visible');
});
参考文档的这一部分返回值
您无法分配或使用任何 Cypress 命令的返回值。
既然你已经找到了带有
cy.get(".subnav_item")
的元素,你可以像这样获取它的 href
const jumpLink = $submenuItem.attr('href');