为了简单起见,我省略了大部分测试,只包含了有问题的代码。这是:
click_button('Search')
page.select 'Preferred', :from => 'ticket_service_type'
当我运行它时,我收到以下信息:
Failure/Error: page.select 'Preferred', :from => 'ticket_service_type'
Capybara::ElementNotFound:
cannot select option, no select box with id, name, or label 'ticket_service_type' found`
此按钮单击事件触发的 AJAX 请求与 select 标签没有任何关系,因此在测试中颠倒顺序会导致测试通过。我知道 Capybara 的默认等待时间是 2 秒,所以我将其更改为 10:
Capybara.default_wait_time = 10
这不会导致测试通过。我怎样才能让这两种方法相互配合,并按照用户操作网页的顺序工作?
(如果我发布了规范中的代码,我敢打赌这会很快解决。)