我正在为登录页面编写E2E测试.如果登录失败,会弹出警告框,通知用户无效的用户名或密码.登录本身是对Web服务的调用,控制器正在处理回调.当我使用browser.switchTo().alert();在量角器中,它发生在回调结束之前.有没有办法可以让量角器等待该警报框弹出?
我在我的量角器测试中用以下语句解决了类似的任务:
browser.wait(function() { return browser.switchTo().alert().then( function() { return true; },function() { return false; } ); });
一般来说,此代码不断尝试切换到警报,直到成功(最后打开警报).一些更多的细节:“browser.wait”等待直到被调用的函数返回true.“browser.switchTo().alert()”尝试切换到已打开的警报框,并且成功或失败.由于“browser.switchTo().alert()”返回一个承诺,那么承诺解析,第一个函数运行(返回true)或被拒绝,第二个函数运行(返回false).