Не работает для

ользую Cucumber / Capybara с Rails 3 и пытаюсь проверить существование изображения после загрузки. Я не уверен, как проверить URL-адрес изображения, чтобы проверить его.

У меня есть следующий сценарий:

Scenario: Create new listing
    Given I am on the new listing page
    When I fill in "listing_name" with "Amy Johnson Photography"
    And I attach the file "features/support/test_image.jpg" to "listing_images_attributes_0_photo" 

    And I press "Create"
    Then I should see "Amy Johnson Photography"
    And I should see the image "test_image.jpg"

Все проходит, кроме последнего шага.

Я пробовал это для моего определения шага, которое прекрасно работает, если это текст на странице, но не для URL изображения:

Then /^I should see the image "(.+)"$/ do |image|
  if page.respond_to? :should
      page.should have_content(image)
    else
      assert page.has_content?(image)
    end
end

Тогда я также попробовал что-то вроде этого определения шага:

Then /^I should see the image "(.+)"$/ do |image|
    html = Nokogiri::HTML(response.body)
    tags = html.xpath('//img[@src="/public/images/foo.png"]')
    # tags.length.should eql(num_of_images)
end

что вызывает следующую ошибку:

And I should see the image "test_image.jpg"                                                    # features/step_definitions/listing_steps.rb:41
      undefined method `body' for nil:NilClass (NoMethodError)
      ./features/step_definitions/listing_steps.rb:42:in `/^I should see the image "(.+)"$/'
      features/manage_listings.feature:24:in `And I should see the image "test_image.jpg"'

Я предполагаю, что вам нужен шаг nokogiri, чтобы найти это правильно. Или, если есть лучший способ, я открыт для предложений. Как я могу проверить, что загруженное изображение находится на странице? Благодарю.

Ответы на вопрос(8)

Ваш ответ на вопрос