angularjs - 在 browser.get 之前设置 cookie

标签 angularjs protractor angularjs-e2e

我们的 (PHP) 应用程序需要设置某些 cookie 才能加载 Angular.js 客户端应用程序。如果未设置 cookie,则会引发异常并显示错误页面。

这意味着为了运行 E2E 测试,我们需要设置 cookie,但以下失败,因为 Protractor 试图在 browser.get 之后立即找到 Angular。调用(它不在那里,因为抛出了异常)。

browser.get('http://' + domain + '/');
browser.manage().addCookie('foo', 'boo', '/', domain);

我试着打电话 browser.get设置 cookie 后:
browser.manage().addCookie('foo', 'boo', '/', domain);
browser.get('http://' + domain + '/');

但这会产生以下错误:

Failed to set the 'cookie' property on 'Document': Cookies are disabled inside 'data:' URLs.



有没有办法如何处理这种情况?也许是告诉 Protractor 在做第一个时不要检查 Angular browser.get在调用获取 URL 之前调用或以某种方式为我们的域设置 cookie?

最佳答案

我在 Protractor Getting Started 中找到了解决方案文档:

browser.driver.get('http://' + domain + '/');
browser.manage().addCookie('foo', 'boo', '/', domain);

请注意 browser.driver.get而不是 browser.get .这将阻止 Protractor 寻找 Angular 应用程序并且可以设置 cookie。然后我使用另一个 browser.get内部 it陈述。

关于angularjs - 在 browser.get 之前设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24138986/

相关文章:

javascript - AngularJS 在 $rootScope 和 $scope 之间进行选择

javascript - 如何使用 Protractor 将滚动重置到网格顶部

javascript - 如何在 Protractor 中跨多个规范共享测试

node.js - 将 Protractor E2E 测试与 Node 重放连接起来

javascript - 具有不同对象的数组的indexOf

javascript - NodeJS/Angular 编辑请求收到 400 错误

javascript - 带有 typeof 表达式的 ng-switch

javascript - Protractor 似乎不适用于异步页面

javascript - WebDriver click() 与 JavaScript click()

javascript - Protractor 测试 Angular 2 和点击事件