当前位置: 首页 > 知识库问答 >
问题:

在量角器中设置cookie

邓越泽
2023-03-14

我试图在量角器测试用例中设置一个cookie。我们使用量角器3.3.0,Angular 1.5.x和Node.js 6.9.1

这是规格:

(function() {
    'use strict';

    describe('Dummytest', function() {
        beforeEach(function() {
            browser.get('./');
        });

        it('should set a cookie', function() {
            browser.manage().addCookie("test", "fail_cookie", '/', 'localhost');
        });
    });
})();
  Message:
    Failed: {"errorMessage":"Unable to set Cookie","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":"Keep-Alive","Content-Length":"165","Content-Type":"application/json; charset=utf-8","Host":"localhost:45556","User-Agent":"Apache-HttpClient/4.5.1 (Java/1.8.0_77)"},"httpVersion":"1.1","method":"POST","post":"{\"cookie\":{\"path\":\"/\",\"domain\":\"localhost\",\"name\":\"test\",\"httpOnly\":false,\"hCode\":3556498,\"secure\":false,\"value\":\"fail_cookie\",\"class\":\"org.openqa.selenium.Cookie\"}}","url":"/cookie","urlParsed":{"anchor":"","query":"","file":"cookie","directory":"/","path":"/cookie","relative":"/cookie","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/cookie","queryKey":{},"chunks":["cookie"]},"urlOriginal":"/session/68875d10-f7b4-11f6-8f37-71161903ed83/cookie"}}
    Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:06:42'
    System info: host: 'XXXXXXXXX', ip: '10.##.##.230', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_77'
    Driver info: driver.version: unknown
  Stack:
    UnableToSetCookieError: {"errorMessage":"Unable to set Cookie","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":"Keep-Alive","Content-Length":"165","Content-Type":"application/json; charset=utf-8","Host":"localhost:45556","User-Agent":"Apache-HttpClient/4.5.1 (Java/1.8.0_77)"},"httpVersion":"1.1","method":"POST","post":"{\"cookie\":{\"path\":\"/\",\"domain\":\"localhost\",\"name\":\"test\",\"httpOnly\":false,\"hCode\":3556498,\"secure\":false,\"value\":\"fail_cookie\",\"class\":\"org.openqa.selenium.Cookie\"}}","url":"/cookie","urlParsed":{"anchor":"","query":"","file":"cookie","directory":"/","path":"/cookie","relative":"/cookie","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/cookie","queryKey":{},"chunks":["cookie"]},"urlOriginal":"/session/68875d10-f7b4-11f6-8f37-71161903ed83/cookie"}}
    Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:06:42'
    System info: host: 'XXXXXXXXXXXXX', ip: '10.##.##.230', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_77'
    Driver info: driver.version: unknown
        at WebDriverError (C:\Users\[username]\dev\project\node_modules\selenium-webdriver\error.js:27:5)

编辑:

我做了一些进一步的实验。请注意,我已经更改了域,并且在成功读取/写入cookie之前没有browser.get

(function() {
    'use strict';

    describe('Dummytest', function() {
        it('should set a cookie', function() {
            browser.manage().addCookie("test", "fail_cookie", '/', '127.0.0.1');
            browser.manage().getCookie('test').then(function(cookie) {
                console.log('cookie test', cookie);
                browser.get('./');
                browser.manage().getCookie('test').then(function(cookie) {
                    console.log('cookie test 2', cookie);
                });
            });
        });
    });
})();

这是我得到的输出:

cookie test { path: '/',
  domain: '127.0.0.1',
  name: 'test',
  httpOnly: false,
  hCode: 3556498,
  secure: false,
  value: 'fail_cookie',
  class: 'org.openqa.selenium.Cookie' }
cookie test 2 null

编辑4:

越来越近了!将域设置为.localhost(注意开头的点(.))似乎有效。会做进一步调查并报告。与此同时,如果有人能告诉我为什么这个点是重要的,以及为什么那个特定的域是有效的,我将非常感激:)

共有1个答案

邢晗日
2023-03-14

在我的protractor.conf.js中将baseUrl设置为127.0.0.1似乎可以解决我一直面临的类似问题。

 类似资料:
  • 问题内容: 我试图在量角器上设置一个全局变量,以在所有描述块中使用。 但这返回了以下错误: 我也看了这个问题:量角器angularJS全局变量 所以我试图以这种方式在conf.js中设置变量glob: 仍然有相同的错误。 如何在量角器测试中正确添加全局变量? 问题答案: 可以借助属性从量角器配置文件设置全局变量: 您可以使用规范中访问它。 请参阅参考配置文件。 params对象将直接传递到Prot

  • 我试图用量角器模拟我网站上的用户故事。 用户必须输入使用自动完成的输入。在现实生活中,用户必须在输入中键入一些文本,然后用鼠标或更自然的向下键选择正确的命题。 问题是我似乎不能用量角器来模拟。element.sendKeys不允许您这样做。我已经尝试了十几种不同的方式,它最多只能产生不可预测的结果。 因此,我想直接根据我的输入操作ng模型。有没有办法从量角器访问元素的作用域并在其上调用函数/设置属

  • 问题内容: 我想在禁用缓存功能的情况下使用Firefox /量角器运行测试。(实际上,我正在尝试阻止304个HTTP响应)。 有多种方法可以做到这一点: 通过删除Etag标头从后端禁用缓存->我无法修改后端 从前端删除Etag标头->我试过了,没有用 从firefox禁用缓存:我只需要将标志设置为false 手动工作。我只收到200条回复,非常好。我希望能够通过量角器配置来设置此标志。经过一番搜索

  • 问题内容: 一个简单的问题:如何在html中设置作用域值,以供控制器读取? JSFiddle:http : //jsfiddle.net/ncapito/YdQcX/ 问题答案: 在循环内分配变量时不起作用。用 尾随会停止对任何文本求值的Angular表达式。 然后,您只需调用即可输出变量值。 我发现在迭代多个嵌套数组时这非常有用,我想将当前的迭代信息保留在一个变量中,而不是多次查询。

  • 为了使saucelabs代理能够在旧版本的量角器中工作,我们通过在下面的index.js中设置主机和端口来覆盖sendRequest方法: 量角器\node_modules\selenium-webdriver\http\index.js 现在,量角器允许您通过capabilities对象(如下所示)设置代理,该对象应该传递给index.js sendRequest名为'opt_proxy'的新参

  • 问题内容: 我已成功在Chrome中运行量角器测试,并在我的量角器配置中使用以下部分指定了我的chrome二进制文件的路径: 这可行。 我的Firefox也安装在非标准位置。 有没有一种等效的方法可以在量角器配置中为Firefox指定二进制文件? 问题答案: 似乎您必须使用firefox驱动程序的自定义参数自行启动SeleniumServer。 可以在以下位置找到更多有关firefox驱动程序的选