我们的(
@L_404_0@)应用程序需要设置某些cookie才能加载Angular.js客户端应用程序.如果未设置cookie,则抛出异常并显示错误页面.
这意味着为了运行E2E测试,我们需要设置cookie,但是以下操作失败,因为量角器试图在browser.get调用之后找到Angular权限(它不在那里,因为异常被抛出).
browser.get('http://' + domain + '/'); browser.manage().addCookie('foo','boo','/',domain);
设置cookies后,我尝试调用browser.get:
browser.manage().addCookie('foo',domain); browser.get('http://' + domain + '/');
但这会产生以下错误:
Failed to set the ‘cookie’ property on ‘Document’: Cookies are
disabled inside ‘data:’ URLs.
有没有办法处理这种情况?也许告诉量角器在执行第一个browser.get调用或者以某种方式在调用获取URL之前为我们的域设置cookie时,不要检查Angular?
我在
Protractor Getting Started文档中找到了解决方案:
browser.driver.get('http://' + domain + '/'); browser.manage().addCookie('foo',domain);
注意browser.driver.get而不是browser.get.这将阻止量角器寻找Angular应用程序,并且可以设置cookie.然后我在其中使用另一个browser.get语句.