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

Cypress自动化:如何点击fc-timegrid行列交叉的时段槽?

解决Cypress中点击网格行列交叉点的问题

不要依赖固定的nth-child索引(行列位置可能随动态加载、布局调整发生变化),改用文本匹配定位目标行和列,再找到交叉单元格,以下是可靠的实现方案:

方法1:通过表头列索引定位

先找到目标活动(Spinning)在表头的列位置,再匹配对应时段(11am)的行,最后点击交叉单元格:

// 等待表格加载完成
cy.get('.fc-scrollgrid').should('be.visible');

// 获取Spinning列的索引
cy.get('.fc-scrollgrid thead th')
  .contains('Spinning')
  .invoke('index')
  .then(columnIndex => {
    // 定位11am所在的行,点击对应列的单元格
    cy.contains('.fc-scrollgrid tbody tr', '11am')
      .find('td')
      .eq(columnIndex)
      .click();
  });

方法2:通过行过滤+列匹配

如果时段文本仅在行内特定单元格(比如行首td)中显示,可用filter精准定位目标行:

cy.get('.fc-scrollgrid').should('be.visible');

// 过滤出包含11am的行
cy.get('.fc-scrollgrid tbody tr')
  .filter(':has(td:contains("11am"))')
  .then($targetRow => {
    // 找到Spinning列的索引
    cy.get('.fc-scrollgrid thead th:contains("Spinning")')
      .invoke('index')
      .then(colIndex => {
        // 点击交叉单元格
        cy.wrap($targetRow).find('td').eq(colIndex).click();
      });
  });

关键注意点

  • 如果元素处于隐藏/不可见状态,可在click()中添加{force: true}(优先通过等待确保元素可见,再考虑强制点击)
  • 若表格为异步加载,必须先通过cy.get('.fc-scrollgrid').should('be.visible')等待渲染完成

内容的提问来源于stack exchange,提问作者RRJoshi Joshi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:17:05