【问题标题】:Browser.manage().addCookie() returns error missing 'name'Browser.manage().addCookie() 返回错误缺少“名称”
【发布时间】:2018-04-23 09:00:25
【问题描述】:

当我尝试在量角器中设置 cookie 时,我收到以下错误消息:

失败:无效参数:缺少“名称”
(会话信息:chrome=61.0.3163.100)

我使用以下不同的代码在量角器中设置 cookie。但它们都不起作用。

案例一:

browser.get('http://localhost:8080');
browser.driver.manage().addCookie('test', 'test');

案例 2:

browser.get('http://localhost:8080');
protractor.browser.manage().addCookie({ 'name': 'test', 'value': 'test', 'path': '/', 'domain': 'localhost' });

案例 3:

browser.get('http://localhost:8080');
browser.manage().addCookie('test', 'test', '/', 'localhost');

我正在使用量角器 5.2 版运行代码。

谁能帮帮我?提前致谢。

【问题讨论】:

    标签: angularjs cookies protractor automated-tests


    【解决方案1】:

    优先使用browser.driver.get() 而不是browser.get()

    至于browser.driver.get() 返回一个承诺,你应该考虑到它:

    browser.driver.get('http://' + domain + '/').then(() => {
      browser.manage().addCookie({name: 'foo', value: 'boo'});
    });
    

    还要注意,在这种情况下,您不需要将域值传递给addCookie,因为量角器默认使用当前域。这也将解决Mohan Ram 提到的localhost 的问题

    【讨论】:

      【解决方案2】:

      我的问题得到了解决。下面的代码对我有用。

      (browser.manage() as any).addCookie({ name: 'test', value: 'test', domain: 'localhost' });
      

      【讨论】:

        【解决方案3】:
        browser.get('http://127.0.0.1:8000');
        browser.manage().addCookie('test', 'test', '/', '127.0.0.1');
        

        问题在于使用 localhost,请改用 127.0.0.1

        请进一步阅读量角器问题here

        【讨论】:

        • 它不工作给出了同样的错误。请参阅我已附上图片。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-24
        • 1970-01-01
        • 2013-04-27
        • 2016-10-11
        • 1970-01-01
        • 1970-01-01
        • 2013-09-18
        相关资源
        最近更新 更多