3

我需要通过cookie值来获取请求关键字,使其工作,但它仍然失败。我不知道如何在那里正确传递它。关键字的文件说,关于标题:“头:头部的字典与请求使用” 我有这样的测试,使用图书馆RequestsLibrary机器人框架通过cookie来获取请求(RequestsLibrary) - 类型错误

Check request and response 
    Do Local Login ${username} ${password} #this is my custom keyword - opens browser and logs in using UI 
    ${cookie_value}= Get Cookie Value JSESSIONID 
    Create Session session1 https://oururl.com verify=${False} cookies=${cookie_value} 
    ${dict}= Create Dictionary Cookie=${cookie_value} 
    ${resp}= Get request session1 /somepage/request headers=${dict} 

它总是返回TypeError: string indices must be integers。 回溯:

 Traceback (most recent call last): 
    File "c:\python27\lib\site-packages\RequestsLibrary\RequestsKeywords.py", line 370, in get_request 
    session, uri, params, headers, json, redir, timeout) 
    File "c:\python27\lib\site-packages\RequestsLibrary\RequestsKeywords.py", line 897, in _get_request 
    verify=self.verify) 
    File "c:\python27\lib\site-packages\requests\sessions.py", line 501, in get 
    return self.request('GET', url, **kwargs) 
    File "c:\python27\lib\site-packages\requests\sessions.py", line 474, in request 
    prep = self.prepare_request(req) 
    File "c:\python27\lib\site-packages\requests\sessions.py", line 385, in prepare_request 
    cookies = cookiejar_from_dict(cookies) 
    File "c:\python27\lib\site-packages\requests\cookies.py", line 518, in cookiejar_from_dict 
    cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) 

我真的需要通过cookie来请求,因为否则返回只有重新登录页面。

非常感谢您的帮助!

+0

是最后一行生成错误的吗? –

+0

是的,最后一个。我添加了追溯 – neliCZka

回答

5

的sooo终于找到了解决办法:

Do Local Login ${username} ${password} 
    ${cookie_value}= Get Cookie Value JSESSIONID 
    ${dict}= Create Dictionary JSESSIONID=${cookie_value} 
    Create Session session1 https://oururl.com verify=${False} cookies=${dict} 
    ${resp}= Get request session1 /somepage/request 

关键字Create Session作品与cookie,只是饼干必须传递不只是作为一个cookie值,但是字典JSESSIONID=${cookie_value}。 或者我没有传递Cookie在Create Session但在Get Request,就在这时,我必须使饼干作为字典像${dict}= Create Dictionary Cookie=JSESSIONID=${cookie_value}这传递到Get request session1 /somepage/request headers=${dict}

+0

太好了,您应该将此答案标记为已接受。 –