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

如何在Playwright中获取指定JS函数返回值并验证执行结果?

在Playwright中获取并验证页面脚本返回值的解决方案

问题分析

你之前的代码没拿到预期值,核心原因是cy.sdk.engine.block.findBy('image')是异步方法(返回Promise),直接在page.evaluate中返回它只会得到Promise对象,而非实际的ID值。

正确实现步骤

1. 正确获取异步脚本的返回值

在page.evaluate内部await这个异步方法,Playwright会自动解析Promise并返回最终结果:

const imageId = await page.evaluate(async () => {
  // 等待异步方法完成并返回ID
  return await cy.sdk.engine.block.findBy('image');
});

2. 将值显示在测试结果中

  • 用console.log打印,Playwright会把控制台输出捕获到测试报告里:
    console.log('获取到的图片ID:', imageId);
    
  • 也可以在断言中附带值,让测试报告直接展示验证细节:
    expect(imageId).toBeDefined('图片ID未成功获取');
    

3. 验证脚本执行正常

通过try-catch捕获执行异常,同时断言返回值的有效性,确保脚本没出错且结果符合预期:

let imageId;
try {
  imageId = await page.evaluate(async () => {
    return await cy.sdk.engine.block.findBy('image');
  });
  console.log('脚本执行成功,图片ID:', imageId);
} catch (error) {
  // 抛出错误让测试标记为失败,并展示错误信息
  throw new Error(`执行获取图片ID脚本失败: ${error.message}`);
}

// 验证返回的ID格式有效
expect(typeof imageId).toBe('string');
expect(imageId).not.toBeEmpty();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:37:37