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

如何使用Cypress获取JavaScript变量的值?

如何用Cypress获取页面中的JavaScript变量foo

为什么当前代码无法获取foo

你页面中的foo是声明在$(document).ready()回调函数内部的局部变量,它的作用域仅限于这个回调函数,不会挂载到window全局对象上,所以通过win.foo拿到的结果会是undefined。

解决方案

方案1:修改页面代码,将foo设为全局变量

如果有权限修改页面代码,把var foo改成挂载到window对象上,让foo成为全局变量,Cypress就能直接访问:

$(document).ready(function()
{
    ...
    window.foo='xyz'; // 将变量挂载到window全局对象
    ...
}

你的Cypress代码无需修改,执行后就能通过win.foo获取到'xyz'。

方案2:无法修改页面代码时的限制

如果不能修改页面代码,无法获取这个foo的值——因为回调函数执行完毕后,内部的局部变量foo会被JavaScript的垃圾回收机制清理,不存在于页面的任何可访问作用域中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:35:26