ruby+Cucumber2.0中如何添加wait方法来等待特定元素加载

Pra*_*eep 1 ruby rspec cucumber capybara

我在浏览器堆栈上测试我的案例时遇到问题。我面临的问题重现不一致。

为了让我的代码等待元素加载,我使用如下:

gift_no_btn1 = Capybara.find('giftingNoButton')
gift_no_btn1.click
Run Code Online (Sandbox Code Playgroud)

这里的问题是屏幕卡在另一个模块中,我的预期元素未加载,因此我的脚本失败。我读到在 Capybara 2.0 中 find() 方法被替换为 wait_untill 方法。

Tho*_*ole 5

Capybaras 查找方法将等待 Capybara.default_max_wait_time 秒来匹配元素的出现。如果他们等待的时间不够长,请增加该设置或使用 :wait 选项覆盖它以进行特定查找

page.find :css, 'CSS selector for the element', wait: 10
Run Code Online (Sandbox Code Playgroud)

它将等待最多 10 秒直到元素存在。在您的示例中,您传递了“giftingNoButton”的 CSS 选择器,除非您使用自定义元素,否则该选择器实际上并不有效。您可能需要“#giftingNoButton”(查找 id 匹配)或“.giftingNoButton”(类匹配)