等待Ajax调用完成Capybara(Wait for Ajax call to finish for Capybara)

编程入门 行业动态 更新时间:2024-10-25 10:26:10
等待Ajax调用完成Capybara(Wait for Ajax call to finish for Capybara)

我使用3个选择下拉列表从服务器(通过ajax)获取数据。 我想编写一个集成测试,我需要等待ajax请求完成,然后从下一个下拉列表中选择一个值。

到目前为止,我在等待下一次选择之前要等几秒钟,但这不可靠,也不是一个好的解决方案。

I am fetching data from a server(via ajax) using 3 select dropdowns. I want to write an integration test where I need to wait for the ajax request to finish then select a value from the next dropdown.

So far I am waiting for some seconds before doing the next select but that's not reliable and not a good solution.

最满意答案

当您要求与其进行交互时,Capybara会自动等待页面上显示的项目。 如果它没有等待足够长的时间,您可以增加Capybara.default_max_wait_time或将:wait选项传递给大多数查找程序/操作。

因此,如果您正在加载Ajax的选择框,您可以这样做

select('Item that is being loaded')

并且Capybara将等到Capybara.default_max_wait_time秒,以便选择该文本的选项。 如果没有等待足够长的时间来应对您的应用响应时间,您可以这样做

select('Item that is being loaded', wait: 10)

然后将等待最多10秒钟,使选项显示在页面上,然后选择它

I have realized that capybara(latest version) by default waits for the ajax to complete then run the next line in the code. I did not have to do anything, just one selection after the other.

select 'VW', from: 'trademarks-dropdown' select 'Golf', from: 'models-dropdown' assert_equal 200, status_code

更多推荐

本文发布于:2023-07-25 05:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1256724.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Capybara   Ajax   Wait   finish   call

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!