我在访问两个表单上具有相同字段(“电子邮件”)的两个表单时遇到了问题。如果我不手动休眠,Capybara 似乎会在测试的第二部分中的第一次访问中找到“电子邮件”字段。
# visit the first form and fill out a subscription
visit new_front_form_subscription_path(@web_form_1.id)
fill_in "Email", with: "subscriber@example.com"
fill_in "Field 1", with: "my first data"
click_button "Subscribe"
# visit the second form and fill out a subscription
visit new_front_form_subscription_path(@web_form_2.id)
sleep 1
fill_in "Email", with: "subscriber@example.com"
fill_in "Field 2", with: "my second data"
click_button "Subscribe"
随着 sleep 在那里,规范通过了绚丽的色彩。如果没有 sleep ,第二个表单提交会得到一个验证错误——归咎于一个空白的“电子邮件”值。有没有适当的方法来处理这个问题?我不喜欢在规范中引入手动 sleep 。
最佳答案
以下是您可以使用的几种方法来解决它:
find('#second_page #email').set('subscriber@example.com')
visit new_front_form_subscription_path(@web_form_2.id)
expect(page).to have_css('locator_present_only_at_second_page')
fill_in "Email", with: "subscriber@example.com"
关于rspec - 当第一个页面与第二个页面具有相同的字段时,等待第二个页面加载 Capybara 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21313885/