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

Playwright调试时可获取页面标题,运行测试时返回空串求助

自动化测试新窗口标题获取异常求助

我正在编写自动化测试,验证点击链接时会弹出新窗口,并通过检查新窗口的标题来确认功能正常。调试时能看到标题已按预期设置,但运行测试时,断言语句显示收到的是空字符串。这段代码在其他类似测试中可以正常工作,目前无法确定问题原因,希望能得到帮助或建议!

曾找到过类似问题,但尝试其中的解决方案后没有效果。

相关代码

testing.spec.ts

const newWindow = await Utils.getNewWindow(page, openWindowLink);
const title = await newWindow.title();  // 调试时能看到标题,运行时获取空字符串
if (title = 'Privacy error') {
    // 有时需要绕过隐私错误。调试时此if语句能成功触发,但运行时因标题为空不会触发
}
await newWindow.waitForTimeout(5000);
const newTitle = await newWindow.title();
expect(await newTitle).toEqual('New Window Title');  // 运行时仍返回空字符串,调试时正常

Utils.ts

static async getNewWindow(page: Page, linkLocator: Locator) : Promise<Page> {
    await linkLocator.click();
    const newPage = await pagePromise;
    await newPage.waitForLoadState('domcontentloaded');
    return newPage;
}

已尝试的解决方案

  1. 添加页面加载等待
    • getNewWindow方法中已包含waitForLoadState('domcontentloaded')
    • 额外添加了waitForTimeout(5000)(甚至试过50000)
  2. 在需要获取标题时创建新的变量
  3. 勾选“Show browser”运行测试
    • 此操作能获取到标题,但带来了新问题;我们的回归测试不显示浏览器,所以这不是理想方案
    • 勾选后能看到新窗口弹出,甚至会执行绕过隐私错误的流程,说明标题确实存在,只是无界面模式下无法正常获取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:32:02