0

我有一个填写一些字段的测试,然后应该点击一个按钮。这一切都是在加载模态窗口后完成的。但是,它似乎只是跳过它而不单击按钮。我已经尝试手动调试它并自己调用它,它会工作正常,但是当我自己运行测试时它不会点击它。

Given /^I login with "(.*?)" and "(.*?)"$/ do |email, password|
  within "#signin_fields" do
    fill_in("custom_fields_email", :with => email)
    fill_in("custom_fields_password", :with => password)
  end
  click_button("Sign In") if page.should have_selector(".btn-signin")
end

我什至添加了一个检查以确保它在页面上,但是自从删除了 wait_until,我不确定我应该如何让页面加载,然后确保它正确单击按钮。任何想法将不胜感激。

4

3 回答 3

0

这篇文章可能会有所帮助: 您如何让 rspec 输出它遇到的内容,而不是“没有找到预期的内容”?基本上,对于调试,您可以添加该行save and open page并检查规范发现的内容以及它是否与您自己的调试结果不同。

于 2013-04-09T02:28:45.590 回答
0

您的代码中的以下行与have_selectorRSpec 匹配器一样不正确:

click_button("Sign In") if page.should have_selector(".btn-signin")

相反,您应该使用Capybara::Node::Matchers中的任何一个,例如:

click_button("Sign In") if page.has_selector?(".btn-signin")
于 2013-04-08T22:26:58.763 回答
-1

page.should have_selector(".btn-signin") isn't going to return true or false and therefor the button will never be clicked. Just do this:

click_button(".btn-signin")

If it should be there then the test will fail if it doesn't appear on the page.

于 2013-04-08T18:15:22.370 回答