我想测试用户的激活。为了验证用户的创建,我单击“有效”按钮,前端请求后端发送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
或
*** Setting ***
Library SeleniumLibrary
*** Keyword ***
!Confirm entry
[Arguments] ${id_button}
Wait Until Element Is Visible ${id_button}
${status} Run Keyword And Return Click Element ${id_button}
这两种解决方案都不会让我满意。
请问您对在Robotframework中使用关键字来解决我的问题有所了解吗?
最诚挚的问候
答案 0 :(得分:3)
Click Element
将不会返回您期望的状态代码。您无法使用硒获取状态代码。
Response Status Code Should Equal
是HTTP库,仅在遵循HTTP请求(例如HTTP库中的GET
,POST
关键字)时才有效。
Example
HTTP Context httpstat.us
GET /302
Response Status Code Should Equal 302
它不适用于硒关键字。
答案 1 :(得分:0)
正如已经给出的答案所突出显示的那样,混合使用HttpLibrary和SeleniumLibrary不会使您访问UI和Web服务器之间的http交换的状态代码。
如果要确保为来自浏览器的所有呼叫都分配一个http 200,则必须通过代理路由通信。在此Stackoverflow Answer工作示例中,给出了使用BrowserMob代理的示例。
答案 2 :(得分:0)
要重复其他人已经说过的内容,硒无法拦截浏览器的请求。
出于不同选择的目的,另一种选择是使用Service Workers-将获取网络流量并在控件中调用js,该控件可以存储(甚至修改)传输的数据。
其设置可能非常复杂(注入worker和js,然后通过robotframework与之通信),这里是very through SO answer入门。