我正在使用ngx-toastr和我的angular 2应用程序,我已经开始对它运行一些e2e测试.我在测试toastr时遇到困难,因为它弹出并在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');
}
Run Code Online (Sandbox Code Playgroud)
这使得它击中了不可见的代码,尽管我看到窗口中存在的toastr - 它无法在dom中找到它.我已经拍摄了dom的截图,向您展示了我认为它可能与此有关的位置.
这是dom 屏幕截图的屏幕截图,我正试图在start-signup部分进行烘烤.请注意,名为Default的路由器插座不包装启动注册,即使它已在路由器中声明使用此插座 - 我不知道这是否是设计的.
{
path: 'signup',
children: [
{ path: '', component: StartSignupComponent, outlet: 'default' }
]
},
Run Code Online (Sandbox Code Playgroud)
似乎toastr div不在start-signup标记内.我无法将其移入内部,即使使用ngx-toastr自己的方法将toastr消息移动到"您选择的"div中.目前我将它放在app.component中,并将toastr"holder"div放在路由器插座旁边 - 我也尝试将持有者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) …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个使用 AAD 来验证用户身份的 angular 6 应用程序。在这里,我使用了库azure/msal-angular连接到 AAD v2。我已经按照项目自述文件中的规定使用我的客户端 ID 初始化了库,并且我可以正常登录。
问题是:登录后,我设置了一个重定向 url 到:http://localhost:4200/account登录后的登陆页面,我希望用户在成功登录后到达。在这里,我指定了路线:
{ path: 'account', component: AccountDetailedComponent }
Run Code Online (Sandbox Code Playgroud)
这很好,除了来自 AAD 的重定向 url 导航到http://localhost:4200/account#id_token=xxxxx我的生活之外,我无法摆脱 hashbang 和 id_token。
我希望 id_token=xxxx 是这样的查询参数:
http://localhost:4200/account?id_token=xxxx
Run Code Online (Sandbox Code Playgroud)
这将使我的路线匹配,但事实并非如此,因此该路线无效。
我的问题是:如何解决路线以匹配指定路线?
我已经阅读了路由中的匹配器,但我真的应该使用正则表达式来匹配常见的重定向路由吗?我在界面和库中都没有看到任何删除这个 hashbang 的选项。
编辑
认为这是路由不匹配的原因是,在初始重定向到 /account 后,我再次重定向到登录页面。它会闪烁 /account#id_token=xxxx 然后再次重定向到登录页面。我在下面的回答描述了解决的问题。
希望你能帮忙。
亲切的问候克里斯