我几天到写黄瓜/水豚测试的第一次,我遇到了麻烦。黄瓜/水豚找到()不重试
我有一个Login.feature
文件有两个特点;一个使用无效凭证测试登录尝试,另一个使用有效凭证。前者测试成功,后者失败。
我通过查找是对每种类型的动作后呈现引导alert
测试它们。在登录失败时,页面会刷新警报消息。如果成功,用户将被重定向到提供警报的主页。
我的问题似乎是,在使用有效凭据测试寻找“成功”的警报时,它失败,因为该页面没有加载。我知道find
方法应该在Capybara.default_wait_time
定义的一段时间内继续查找给定元素。
以下是简单的测试我使用的是:
find('div.alert.alert-success')
这导致Capybara::ElementNotFound
错误每次。我已将default_wait_time
设置为不同的长度(最长为500),但无论如何都会立即发生错误。我已经深入到find
的代码中,并注入了一些输出,以便我可以看到该块是否在该段时间内继续执行 - 它似乎只尝试一次,并在异常提出时停止。
我看着这个错误的方式吗?从我读过的内容来看,不鼓励明确地等待一段时间,但默认机制不适用于我。
你有没有试过'expect(page).to have_selector('div.alert.alert-success')'?或者'expect(page).to have_selector('#flash_notice')'。如果你发布你的html代码会更好 – fabersky
你使用的驱动程序是什么? –
我也尝试过'have_selector'方法,结果相同。 我不确定我使用的是哪个驱动程序。我没有修改它,所以我想默认情况下使用Cucumber v2.4.0 gem的驱动程序。 –