Selenium Robotframework:如何检索请求的答案

Selenium Robotframework:如何检索请求的答案,selenium,http-post,robotframework,Selenium,Http Post,Robotframework,我想测试一个用户的激活。为了验证用户的创建,我单击“有效”按钮,前端请求后端发送POST请求。 我的目标是检索此查询的答案 我试过这些关键词: *** Setting *** Library SeleniumLibrary Library HttpLibrary.HTTP *** Keyword *** !Confirm entry [Arguments] ${id_button} Wait Until Element Is Visible ${

我想测试一个用户的激活。为了验证用户的创建,我单击“有效”按钮,前端请求后端发送POST请求。
我的目标是检索此查询的答案

我试过这些关键词:

*** Setting ***
Library    SeleniumLibrary
Library    HttpLibrary.HTTP    

*** Keyword ***
!Confirm entry
    [Arguments]    ${id_button}
    Wait Until Element Is Visible    ${id_button}
    Click Element    ${id_button}
    Response Status Code Should Equal    200

这两种解决方案都不能让我满意。

请您想一想在Robotframework中使用哪些关键字来解决我的问题好吗?

单击元素
不会像您预期的那样返回状态代码。使用selenium无法获取状态代码

响应状态代码应该等于
是HTTP库,只有在HTTP库中的
GET
POST
关键字等HTTP请求之后,它才有效

Example      
    HTTP Context    httpstat.us
    GET  /302
    Response Status Code Should Equal   302

它不适用于selenium关键字

正如已经给出的答案所强调的,HttpLibrary和SeleniumLibrary的混合将不允许您访问UI和Web服务器之间http交换的状态代码


如果要确保来自浏览器的所有调用都具有http 200,则必须通过代理路由流量。在这个工作示例中,给出了BrowserMob代理的使用

重复其他人已经说过的话,selenium无法拦截浏览器的请求。
对于不同的替代方案,另一种选择是使用服务工作者——这将获得网络流量并在您的控件中调用js来存储(甚至修改)传输的数据


这方面的设置可能相当复杂(注入worker和js,然后从robotframework与之通信),这里有一个简单的方法可以开始使用。

请添加设置部分?你在使用哪个图书馆?selenium还是http?我添加了请求的信息。@Navarasu“不给我满足感”是什么意思?他们会抛出错误吗?如果会,是什么错误?如果他们没有抛出错误,他们会做什么与您期望的不同?第一个解决方案返回错误“无可用请求,请使用例如GET to create one”。第二个返回错误“ElementNotInteractiableException:Message:元素无法滚动到视图中”@请允许你的问题包括这些信息。我注意到你的评论。你知道我的问题的另一个解决办法吗@纳瓦拉苏你想做什么?测试http请求还是selenium?如果您想验证http api,只需使用http库并执行post请求,就可以验证响应,如答案中所示。如果你想验证UI,直接用UI确认post请求检查成功消息,或者检查db是否添加了确认post操作成功的内容,我想我们可以同时处理这两个库。我想检索发送的POST命令的答案。因此,如果我理解正确,我必须连接到接收器并收听端口才能接收消息?消息的接收器是。你能帮我写出正确的语法吗@纳瓦拉苏
Example      
    HTTP Context    httpstat.us
    GET  /302
    Response Status Code Should Equal   302