Robot framework pass cookie to get request (RequestsLibrary) - TypeError(机器人框架传递 cookie 以获取请求 (RequestsLibrary) - TypeError)
问题描述
我需要将 cookie 值传递给 Get 请求关键字以使其工作,但它仍然失败.我不确定如何在那里正确传递它.关键字的文档说明了标头:标头:与请求一起使用的标头字典"我有这样的测试,使用库 RequestsLibrary
:
I need to pass cookie value to Get request keyword to make it work, but it is still failing. I am not sure how to pass it correctly there. Documentation of the keyword says about the headers: "headers: a dictionary of headers to use with the request"
I have test like this, using Library 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:python27libsite-packagesRequestsLibraryRequestsKeywords.py", line 370, in get_request
session, uri, params, headers, json, redir, timeout)
File "c:python27libsite-packagesRequestsLibraryRequestsKeywords.py", line 897, in _get_request
verify=self.verify)
File "c:python27libsite-packages
equestssessions.py", line 501, in get
return self.request('GET', url, **kwargs)
File "c:python27libsite-packages
equestssessions.py", line 474, in request
prep = self.prepare_request(req)
File "c:python27libsite-packages
equestssessions.py", line 385, in prepare_request
cookies = cookiejar_from_dict(cookies)
File "c:python27libsite-packages
equestscookies.py", line 518, in cookiejar_from_dict
cookiejar.set_cookie(create_cookie(name, cookie_dict[name]))
我确实需要将 cookie 传递给请求,否则它会再次返回仅登录页面.
And I really need to pass the cookie to the request, because otherwise it returns back only login page again.
非常感谢您的帮助!
推荐答案
Sooo终于找到了解决方案:
Sooo finally found the solution:
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 不仅必须作为 cookie 值传递,还必须作为字典 JSESSIONID=${cookie_value}
传递.或者,我不必在 Create Session
中传递 cookie,而是在 Get Request
中传递 cookie,然后我必须将 cookie 设为像 ${dict} 这样的字典=创建 Dictionary Cookie=JSESSIONID=${cookie_value}
并将其传递给 Get request session1/somepage/request headers=${dict}
Keyword Create Session
works with the cookie, just the cookie must be passed not just as a cookie value, but dictionary JSESSIONID=${cookie_value}
.
Alternatively I don't have to pass the cookie in Create Session
but in Get Request
, just then I have to make the cookie as dictionary like ${dict}=
Create Dictionary Cookie=JSESSIONID=${cookie_value}
and this pass into Get request session1 /somepage/request headers=${dict}
这篇关于机器人框架传递 cookie 以获取请求 (RequestsLibrary) - TypeError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:机器人框架传递 cookie 以获取请求 (RequestsLibrary) - TypeError


基础教程推荐
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 筛选NumPy数组 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01