【发布时间】:2017-04-10 11:49:12
【问题描述】:
我将 ngx-toastr 与我的 angular 2 应用程序一起使用,并且我已经开始针对它运行一些 e2e 测试。我在测试烤面包机时遇到了困难,因为它会在 5 秒后弹出并消失。
我尝试按照 Stackoverflow 上的建议添加几种不同的选择方法,但没有运气。
我试过的:
getToastr() {
var EC = protractor.ExpectedConditions;
var targetEle = element(by.css(".toast-message"));
browser.wait(EC.visibilityOf(targetEle), 10000, 'NOT VISIBLE'); //wait until
//ele visible
browser.wait(EC.presenceOf(targetEle), 10000, 'NOT PRESENT');
}
这使它命中了不可见的代码,即使我看到窗口中存在 toastr - 它无法在 dom 中找到它。我已经截取了 dom 的屏幕截图,以向您展示位置,因为我认为这可能与此有关。
这是 dom Screenshot of DOM 的屏幕截图,我正在尝试在开始注册部分敬酒。请注意,名为 Default 的路由器插座不包装 start-signup,即使它在路由器中声明使用此插座 - 我不知道这是否是设计使然。
{
path: 'signup',
children: [
{ path: '', component: StartSignupComponent, outlet: 'default' }
]
},
似乎 toastr div 不在 start-signup 标记内。即使使用 ngx-toastr 自己的方法将 toastr 消息移动到“您选择的”div 中,我也无法将其移动到内部。目前我将它放在 app.component 中,并将 toastr “holder” div 放在路由器插座旁边 - 我也尝试将 holder div 放在路由器插座中,但运气不好。
我从量角器得到的错误是:
1) Create account page should have a toastr message
- Failed: NOT VISIBLE
Wait timed out after 10334ms
Executed 28 of 28 specs (1 FAILED) in 18 secs.
[14:01:29] I/launcher - 0 instance(s) of WebDriver still running
[14:01:29] I/launcher - chrome #01 failed 1 test(s)
[14:01:29] I/launcher - overall: 1 failed spec(s)
[14:01:29] E/launcher - Process exited with error code 1
npm ERR! Test failed. See above for more details.
如果需要,我可以提供更多信息。这是我能想到的初步信息。
克里斯的问候
【问题讨论】:
-
你解决了这个问题吗?如果是这样,你能发布一个答案。你使用无头浏览器吗?\
-
我不再在我有测试项目的公司工作,所以我无法验证任何答案。但是,如果有人可以验证它是否有效,我会接受答案。我从来没有让它工作,我只是最终没有测试 toastr。当我编写测试时,我使用 chrome 作为浏览器。
-
我刚刚提供了一个我不确定它是否有效的答案。但是,如果您验证它,我会很高兴。
标签: angular testing protractor