You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于在Cypress中实现鼠标悬停并点击用户2的技术咨询

关于在Cypress中实现鼠标悬停并点击用户2的技术咨询

嘿,我来帮你搞定这个问题!要在Cypress里实现鼠标悬停用户2并点击的操作,其实很简单,咱们一步步来:

首先,你得明确目标元素的定位逻辑——在这个测试页面里,三个用户的头像都是带有alt$='User Avatar'属性的img标签,元素索引从0开始计数,所以用户2对应的是索引1(用户1是0,用户3是2),用eq(1)定位比last()更精准,毕竟last()只会选中最后一个元素(也就是用户3)。

接下来,Cypress里模拟鼠标悬停主要用trigger('mouseenter')或者trigger('mouseover'),这两个方法都能触发悬停事件,让对应的figcaption面板显示出来。等面板可见后,再找到用户2的详情链接点击就行。

我给你调整后的完整测试代码,你可以直接复制使用:

describe('Mouse Hover & Click User 2', () => {
  it('should hover over User 2 and click the link', () => {
    // 访问目标测试页面
    cy.visit('https://the-internet.herokuapp.com/hovers');

    // 定位用户2的头像,触发鼠标悬停事件
    cy.get("img[alt$='User Avatar']").eq(1).trigger('mouseenter');

    // 验证用户2的信息面板可见
    cy.get('.figcaption').eq(1).should('be.visible');
    // 确认面板里的用户名是user2
    cy.get('.figcaption').eq(1).find('h5').should('contain.text', 'name: user2');

    // 点击用户2的详情链接
    cy.get('.figcaption').eq(1).find('a').click();

    // 可选:验证跳转后的页面,比如检查URL是否包含user2的路径
    cy.url().should('include', '/users/2');
  });
});

另外补充一点:如果trigger()方法没法触发某些依赖真实DOM事件的样式或交互(比如CSS的:hover伪类样式),你可以试试用cy.realHover()命令,这个命令能模拟更贴近真实用户的鼠标悬停行为,但需要安装对应的Cypress插件来支持哦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 11:33:02