Cucumber / Capybara测试失败"期望找到css" .singer-row"但没有比赛"

时间:2015-08-29 04:12:53

标签: ruby-on-rails cucumber capybara shopify

我一直在尝试我的黄瓜CapyBara / Cucumber测试失败,但我无法弄清楚原因。这是测试:

Then /^I should see that the customer is a singer$/ do
  expect(page).to have_css('.singer-row')
end

如果我撬开那个测试并运行"期望(页面).to have_css(' .singer-row')"它回来了真实。在浏览器中,我可以看到那里的元素。

这是错误:

expected to find css ".singer-row" but there were no matches (RSpec::Expectations::ExpectationNotMetError)

这是erb:

 <% @singers.each do |singer| %>
          <tr class='singer-row'>
             <td>
...

我哪里错了?

2 个答案:

答案 0 :(得分:1)

终于找到了它。不得不添加

Capybara.default_max_wait_time = 5

到我的env文件。 Capybara在加载之前正在寻找css元素。

答案 1 :(得分:0)

运行测试用例时,问题可能与您的页面大小有关。有时内部浏览器会以非常小的尺寸打开,因此它会在后台获取移动视图。

因此,请尝试在您遇到错误的测试用例中截取您的网页截图。

如果是这种情况,请尝试添加以下代码,然后就完成了。

Before do |scenario|
  DatabaseCleaner.start
  page.driver.browser.manage.window.maximize
end