Playwright调用page.goto时触发‘Test ended.’错误的求助
Playwright调用page.goto时触发‘Test ended.’错误的求助
嘿,刚接触Playwright碰到这个问题太正常啦,我一眼就瞅出问题所在啦!
你看你在uiLogin函数里调用PW.visit(page, route_root_page);的时候,没有加await关键字!因为PW.visit是一个异步方法(前面标了async),如果不加await,代码会直接跳过这个导航操作继续往下执行,甚至可能你的测试已经跑完结束了,但page.goto还在后台尝试导航,这时候Playwright的测试上下文已经被销毁,自然就会抛出Error: page.goto: Test ended.的错误。
修复方法很简单,只需要给调用加上await:
static async uiLogin(username, password, page) { const loginPage = new LoginPage(page); // 这里加上await,等待导航完成再执行后续操作 await PW.visit(page, route_root_page); await loginPage.enterUsername(username); await loginPage.enterPassword(password); await loginPage.clickLoginBtn(); }
额外小提醒:
Playwright里几乎所有和页面交互的方法都是异步的,比如元素定位、点击、输入这些,调用的时候一定要记得加上await,不然很容易出现这种时序问题,导致测试行为不符合预期或者报错。
备注:内容来源于stack exchange,提问作者simpleMan
相关产品推荐
相关产品推荐

