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

如何使用Cypress获取并验证元素onclick事件的文本内容?

如何用Cypress验证a标签的onclick事件文本?

目标HTML代码:

<li class="test">
    <a href="javascript:void(0);" onclick="getVal('101')"></a>
</li>

需求:验证上述a标签的onclick事件文本是否为getVal('101'),此前尝试两种写法均失败:

第一种失败写法:

cy.get('li.test').each(($el, index) => {
    cy.wrap($el)
    .its('onclick')
    .then(content => {
        console.log(content);
    });
});

第二种失败写法:

cy.get('li.test').each(($el, index) => {
    cy.wrap($el)
    .invoke('attr', 'onclick')
    .then((onclick) => {
        console.log(onclick);
    });
});

问题原因

两种写法都错误地针对li.test元素操作,但onclick属性实际存在于它的子元素<a>标签上,自然无法获取到目标属性值。

正确解法

直接定位到<a>标签再获取onclick属性即可,以下是两种可行写法:

  1. 直接定位并断言
cy.get('li.test a')
  .invoke('attr', 'onclick')
  .should('eq', "getVal('101')");
  1. 遍历多个li.test元素时的写法
cy.get('li.test').each(($li) => {
  cy.wrap($li).find('a')
    .invoke('attr', 'onclick')
    .then((onclickText) => {
      console.log(onclickText);
      expect(onclickText).to.eq("getVal('101')");
    });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:22:45