gpt4 book ai didi

Ruby selenium/capybara 等待元素消失

转载 作者:数据小太阳 更新时间:2023-10-29 08:02:30 25 4
gpt4 key购买 nike

我知道这不是一个独特的问题,但我还没有找到实际的解决方案...我有一个页面在加载时上面有一个微调器。我希望我的 ruby​​ rspec 做的是等待微调器在它继续之前离开......

我已经实现了一个 wait_for_ajax,它有帮助但没有完全解决问题:

def wait_for_ajax
Timeout.timeout(Capybara.default_max_wait_time) do
loop until page.evaluate_script('jQuery.active').zero?
end
end

鉴于微调器具有某个类(由 Kendo 生成),我如何才能等待该元素消失?这就是我目前正在尝试的...

def wait_until_load
Timeout.timeout(Capybara.default_max_wait_time) do
loop until !find(".k-loading-color")
end
end

最佳答案

如果您需要 wait_for_ajax,99% 的情况是您做错了什么。在您当前的情况下,您应该这样做

expect(page).to have_no_css('.k-loading-color')

这将等待 Capybara.default_max_wait_time 秒匹配元素消失。如果您需要允许比您设置的 Capybara.default_max_wait_time 更长的时间,您可以覆盖最大等待时间,如

expect(page).to have_no_css('.k-loading-color', wait: 10)

这将等待最多 10 秒让任何匹配项消失

关于Ruby selenium/capybara 等待元素消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48895803/

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