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; }
已尝试的解决方案
- 添加页面加载等待
getNewWindow方法中已包含waitForLoadState('domcontentloaded')- 额外添加了
waitForTimeout(5000)(甚至试过50000)
- 在需要获取标题时创建新的变量
- 勾选“Show browser”运行测试
- 此操作能获取到标题,但带来了新问题;我们的回归测试不显示浏览器,所以这不是理想方案
- 勾选后能看到新窗口弹出,甚至会执行绕过隐私错误的流程,说明标题确实存在,只是无界面模式下无法正常获取
内容的提问来源于stack exchange,提问作者Andy Giebel
相关产品推荐
相关产品推荐

