gpt4 book ai didi

ajax - Capybara 不等待 ajax 请求完成

转载 作者:行者123 更新时间:2023-12-04 21:23:30 24 4
gpt4 key购买 nike

我正在尝试测试从 select 标记中选择一个选项(这些选项是从远程数据库服务器获取的)。在与网站的正常交互期间,填充此下拉列表不会超过几分之一秒。但是,当我运行以下测试时,


When /^(?:|I )select "([^"]*)" from "([^"]*)" in search form$/ do |value, field|
within "#select_container" do
save_and_open_page
page.should have_css("#criteria_div_code > option:nth-child(10)")
select(value, :from => field)
end
end


我收到以下错误,
expected css "#criteria_div_code > option:nth-child(10)" to return something (RSpec::Expectations::ExpectationNotMetError)

下拉列表中至少有 20 个选项,所以我只测试第 10 个选项的存在(目前)。
save_and_open_page显示仅存在一个选项(默认选项)而不是至少 10 个,因此出现“ExpectionNotMetError”。
Capybara.default_wait_time = 30 - 有足够的时间来填充列表。

capybara 不是在等待ajax调用完成吗?

我在这里错过了什么吗?

最佳答案

您可能想查看我对 ajax 重新同步设置超时的响应 Using Capybara for AJAX integration tests .重新同步超时默认为 10 秒,如果您的响应在该时间之前没有返回,您将不会收到任何响应,特别是如果您在配置中将 :resynchronize 设置为 false。下面是设置超时的片段

 Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, :browser => :firefox, :resynchronization_timeout => 1000)
end

注意:如果您之前将 :resynchronize 设置为 false,则需要将其设置为 true。

关于ajax - Capybara 不等待 ajax 请求完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7981740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com