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

太好了,您應該將此答案標記爲已接受。 –