Selenium 如何使用rspec和capybara与javascript JSON响应交互

Selenium 如何使用rspec和capybara与javascript JSON响应交互,selenium,rspec,capybara,Selenium,Rspec,Capybara,我正在使用rspec和capybara,并想测试一个JSON响应,例如单击按钮。我知道我可以使用:js=>true,但我想解析回我得到的JSON。我知道我可以做一些事情,比如: get '/your/path', format: 'js' click_button('Save', format: 'js') ::JSON.parse(response).... 有没有一种方法可以做到: get '/your/path', format: 'js' click_button('Save',

我正在使用rspec和capybara,并想测试一个JSON响应,例如单击按钮。我知道我可以使用:js=>true,但我想解析回我得到的JSON。我知道我可以做一些事情,比如:

get '/your/path', format: 'js'
click_button('Save', format: 'js')
::JSON.parse(response)....
有没有一种方法可以做到:

get '/your/path', format: 'js'
click_button('Save', format: 'js')
::JSON.parse(response)....
?


thx

像Selenium这样的浏览器信息库的目标是接近真实的浏览器,并允许模拟真实用户的行为。真正的用户无法读取对AJAX操作的响应,因此浏览器仿真库不提供这种能力

您有几种可能性:

  • 使用以下方法之一编写此测试。但使用这种方法无法真正测试涉及大量Javascript和AJAX的端到端内容
  • AJAX操作可能会改变应用程序DOM中的某些内容。你可以很容易地用水豚为它写一张支票
  • 但是,如果真的想端到端地测试应用程序,并想直接检查对AJAX操作的HTTP响应,那么应该使用一个记录所有响应的代理。然后对这些回答进行搜索。Selenium维护人员建议使用。由Selenium的Ruby绑定的维护者编写

像Selenium这样的浏览器信息库的目的是接近真实的浏览器,并允许模拟真实用户的行为。真正的用户无法读取对AJAX操作的响应,因此浏览器仿真库不提供这种能力

您有几种可能性:

  • 使用以下方法之一编写此测试。但使用这种方法无法真正测试涉及大量Javascript和AJAX的端到端内容
  • AJAX操作可能会改变应用程序DOM中的某些内容。你可以很容易地用水豚为它写一张支票
  • 但是,如果真的想端到端地测试应用程序,并想直接检查对AJAX操作的HTTP响应,那么应该使用一个记录所有响应的代理。然后对这些回答进行搜索。Selenium维护人员建议使用。由Selenium的Ruby绑定的维护者编写