在这个例子中,确切的:真正的选项不涉及:文本选项传递,而传递给“选择”定位器提供由水豚(:按钮,:领域等)。既然你没有使用这些选择器,那么这个选项并没有真正做任何事情。有水豚等待加载下一页,你需要把它看的东西,将是下一个页面上可见,但没有在当前页面上
expect(page).to have_css('.alert.in.alert-success', text: 'This is only on the next page')
会造成水豚等上Capybara.default_max_wait_time为一个可见的元素,给定的类包含给定的文本在页面上。如果你想在元素确切的文本匹配,你可以通过一个正则表达式
expect(page).to have_css('.alert.in.alert-success', text: /\AThis is only on the next page\Z/)
如果该页面没有加载速度不够快,你可以增加Capybara.default_max_wait_time的值,也可以覆盖用于特定的值通过使用以下方式呼叫:等待选项
expect(page).to have_css('.alert.in.alert-success', text: 'This is only on the next page', wait: 10) # wait up to 10 seconds for the element with given classes containing given text to become visible