Javascript 在量角器中设置cookies
我试图在量角器测试用例中设置cookie。我们使用的是量角器3.3.0、Angular 1.5.x和Node.js 6.9.1 这是规范:Javascript 在量角器中设置cookies,javascript,angularjs,selenium,cookies,protractor,Javascript,Angularjs,Selenium,Cookies,Protractor,我试图在量角器测试用例中设置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() {
'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 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
cookie测试{路径:'/',
域:“127.0.0.1”,
名称:'测试',
httpOnly:false,
hCode:3556498,
安全:错误,
值:'fail_cookie',
类:'org.openqa.selenium.Cookie'}
cookie测试2为空
正如您所看到的,在调用browser.get('./')
时,没有为我到达的域设置cookie。如何为该域设置cookie而不触发原始问题中的错误
编辑2:
找到另一个问题(),该问题要求首先调用browser.driver.get
,然后设置cookie,但这样做会得到与我一直得到的相同的UnableToSetCookieError
。因此,解决办法是另一回事
编辑3:
半相关的一点是,我一直很难找到addCookie
函数及其参数的文档。尤其是现在,在最新版本(2016-01-31)的量角器中,它需要的是一个对象,而不是参数列表。但我最终找到了它,并认为我最好在这里添加一个链接:
编辑4:
越来越近了!将域设置为
.localhost
(注意开头的点(.))似乎有效。将进行进一步调查并报告。同时,如果有人能告诉我为什么这个点很重要,以及为什么这个确切的域有效,我将非常感激:)在我的dragrator.conf.js中将baseUrl设置为127.0.0.1似乎可以解决我一直面临的类似问题。看看这个:。这可能会有帮助吗?嗨,托比,有什么消息吗?为了分享结果,也许你可以回答自己的问题?我读到使用localhost
有问题,使用127.0.0.1
更可取,但我还是新手,还试图保持会话的活跃性。废话。很抱歉,我忘了回到这里,现在我已经忘记了解决方案是什么:(我现在在一家新公司工作,不再能够访问所需的代码。
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