gpt4 book ai didi

ruby-on-rails - Capybara should have_content 等待的时间不够长

转载 作者:行者123 更新时间:2023-12-04 06:23:15 26 4
gpt4 key购买 nike

所以我正在使用 capybara 编写验收测试。该方案是将我们的时事通讯系统连接到外部邮件服务。

我们将被重定向到我们的外部服务页面以请求访问外部邮件服务。成功后我们将被重定向回我们的系统页面。

When "I grant authorization" do
fill_in "username", :with => "myapp"
fill_in "password", :with => "secret"
click_button "Allow Access"
end

Then "I should see 'Connection Established'" do
page.should have_content "Connection Established"
end

And "I should see that I'm connected to Sample External Service" do
page.should have_content "Connection Established: Sample External Service"
page.should have_content "Deactivate Sample External Service syncing"
end

但是如果我没有在 sleep 之前使用 page.should have_content "Connection Established" 。规范将失败。据我所知,使用 sleep 不是最佳做法,因为它会使我们的测试运行缓慢。

如何让它等到它被重定向回我们的系统

最佳答案

有 3 种方法可以调整 Capybaras 方法等待其期望为真/元素存在的最长时间
Capybara.default_max_wait_time = <seconds> - 这是全局设置,应该为绝大多数方法调用设置得足够高
Capybara.using_wait_time(<seconds>) do ... end - 这会临时更改块内的 default_max_wait_time,然后在完成后将其返回到其原始设置。当您有许多方法要使用新的等待时间调用时,或者您需要调用一个将等待时间设置为不同值的辅助方法时,这很有意义。
:wait 选项 - 所有 Capybara 查找器和期望方法都接受 :wait 选项,该选项将更改该方法调用的最长等待时间。当您遇到需要比正常情况更多等待的特定情况时,可以使用此方法

# This will wait up to 10 seconds for the content to exist in the page
page.should have_content "Connection Established: Sample External Service", wait: 10

注意:将来发布问题时,如果您提供完整的确切错误消息作为问题的一部分通常会有所帮助。

关于ruby-on-rails - Capybara should have_content 等待的时间不够长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55744682/

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