【发布时间】:2019-07-19 09:09:32
【问题描述】:
我注意到我必须使用navigateTo 进行使用已验证用户的测试。如果我用.page 定义它们,它只会让我回到登录屏幕,因为它似乎看不到角色/状态。
我认为这是有意的,但文档不是很清楚,但这是我所做的假设,可能会影响我的实际问题。
我也相信任何beforeEach 逻辑在navigateTo 方法之前运行,这会破坏我们需要“waitForAngularJS”的逻辑。
我有一个waitForAngularJS 方法,我改编自官方waitForAngular。在没有身份验证的情况下使用它可以正常工作(当我可以使用 .page... 时)但当我使用身份验证时它不会在“导航到”页面上运行。
fixture `demo1`
.beforeEach(async () => {
await waitForAngularJS();
});
test('modal title', async t => {
await t
.useRole(regularUser)
.navigateTo('http://127.0.0.1/some/page')
// .. the "wait for angular" needs to run here, but can't
.expect(Selector('.modal-title').innerText).eql('My Modal');
});
将.wait(1000) 放在那个位置可以解决我的问题。当我使用.debug() 时,我可以看出waitForAngular 逻辑尚未在新页面上运行。
编辑:根据the forums,逻辑顺序是对的:
打开灯具页面; 执行 beforeEach 函数; 执行useRole命令:进入角色初始化页面(useRole命令的第一个参数),执行初始化函数,作为注册用户进入之前打开的页面; 继续测试。
【问题讨论】:
标签: angularjs testing automated-tests web-testing testcafe