【发布时间】:2014-08-04 20:25:54
【问题描述】:
我正在尝试验证帐户是否已成功创建,但在单击提交按钮后,我需要等到下一页已加载并验证用户最终访问了正确的 URL。
我使用pollUntil 来检查URL 客户端,但这至少在Safari 中会导致Detected a page unload event; script execution does not work across page loads.。我可以添加一个睡眠,但我想知道是否有更好的方法。
问题:
您如何对
this.remote.getCurrentUrl()之类的内容进行投票?基本上我想做this.remote.waitForCurrentUrlToEqual(...)之类的事情,但我也很好奇如何从 Selenium 命令中轮询任何东西,而不是使用在远程浏览器中执行代码的 pollUntil。我正在检查用户在此处登录后是否最终到达受保护的 URL。除了轮询之外,还有更好的方法来检查吗?
最佳实践:我是否需要对 Chai 进行断言,或者当我轮询并等待某些东西作为我的测试时是否有可能?例如,在这种情况下,我只是尝试轮询以确保我们在 30 秒内到达正确的 URL,并且我没有明确的断言。我只是假设测试会失败,但它不会说明原因。如果最佳做法是在这里进行断言,我将如何在这里或任何时候使用等待?
这是我的代码示例:
'create new account': function() {
return this.remote
// Hidden: populate all account details
.findByClassName('nextButton')
.click()
.end()
.then(pollUntil('return location.pathname === "/protected-page" ? true : null', [], 30000));
}
【问题讨论】: