如何在RobotFramework中获取Get请求的HTML响应体?
问题分析
从返回的响应头和内容来看,服务器返回的Content-Length为0,说明请求未被正确处理,导致服务器没有返回预期的HTML内容。核心问题出在请求参数的传递方式上:
- 你在
Get On Session中使用了json=${PARAMS}参数,但GET请求不支持通过请求体传递JSON参数,这个参数通常用于POST/PUT等需要发送请求体的方法。Postman中你应该是将参数放在了URL查询字符串里,所以能正常获取响应。 - 服务器返回的
Content-Type标记为application/json但内容为空,调用response.json()自然会触发JSON解码错误。
解决方案
修正参数传递方式
将请求中的json=${PARAMS}替换为params=${PARAMS},这样RobotFramework会自动将参数拼接为URL的查询字符串,和Postman的行为一致:${response} GET On Session API_${SUITE_NAME} myURL params=${PARAMS} headers=${HEADERS} expected_status=${desired_status_code}获取HTML响应内容
请求成功后,直接通过${response.text}属性获取HTML文本内容,无需调用json()方法:${html_content} Set Variable ${response.text} # 后续可对${html_content}进行解析或交互操作检查请求头(可选)
如果你的请求头中设置了Content-Type: application/json,建议移除该配置,因为GET请求不需要发送请求体,多余的Content-Type可能导致服务器误解请求格式。
内容的提问来源于stack exchange,提问作者Brito
相关产品推荐
相关产品推荐

