如何使用Robot Framework提取HTML格式API返回的数据
提取HTML中__RequestVerificationToken的value值
针对你的Robot Framework测试用例,有两种可靠的方法提取目标值:
方法一:使用BeautifulSoupLibrary(推荐)
BeautifulSoup是专门处理HTML的工具,能更稳定地解析标签,避免HTML结构微调导致提取失败。
步骤:
- 先安装依赖库:
pip install robotframework-beautifulsoup
- 修改测试用例,导入库并提取值:
*** Settings *** Library RequestsLibrary Library BeautifulSoupLibrary *** Variables *** ${login_url} https://testworthy.us *** Test Cases *** get api Create Session mysession ${login_url} ${response}= Get Request mysession /Login # 将响应内容解析为BeautifulSoup对象 ${soup}= Parse Response ${response} # 定位name为__RequestVerificationToken的input标签 ${token_tag}= Find Element By Name ${soup} __RequestVerificationToken # 提取value属性值 ${token_value}= Get Element Attribute ${token_tag} value Log To Console 提取到的Token值:${token_value}
方法二:使用正则表达式(无需额外库)
如果不想安装新库,可利用Robot Framework自带的String库通过正则匹配提取,适合HTML结构稳定的场景。
修改后的测试用例:
*** Settings *** Library RequestsLibrary Library String *** Variables *** ${login_url} https://testworthy.us # 匹配input标签中name为__RequestVerificationToken的value值的正则 ${TOKEN_REGEX} (?s)<input name="__RequestVerificationToken"[^>]+value="([^"]+)" *** Test Cases *** get api Create Session mysession ${login_url} ${response}= Get Request mysession /Login # 将响应内容转为字符串(response.content是字节流,需解码) ${html_str}= Decode Bytes To String ${response.content} # 执行正则匹配,提取分组中的值 ${match_result}= Get Regexp Matches ${html_str} ${TOKEN_REGEX} 1 # 获取匹配到的Token值 ${token_value}= Set Variable ${match_result}[0] Log To Console 提取到的Token值:${token_value}
注意事项:
- 方法一中,
Parse Response会自动处理响应的编码,无需手动解码; - 方法二中的
(?s)修饰符是为了让正则匹配换行符,适配你提供的多行HTML结构;如果HTML结构后续调整,正则可能需要对应修改。
内容的提问来源于stack exchange,提问作者Saad Ahmed Khan
相关产品推荐
相关产品推荐

