title: How do I find an image on a page with Cucumber / Capybara in Rails 3
body: <p>I am using Cucumber / Capybara with Rails 3 and am trying to validate the existence of an image after upload. I'm not sure how to check the url of the image to validate it. </p>
  
  <p>I have the following scenario:</p>
  
  <pre><code>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"
  </code></pre>
  
  <p>Everything passes except the last step.</p>
  
  <p>I've tried this for my step definition, which works great if it's text on the page, but doesn't for an image url:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Then I've also tried something like this step definition instead:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>which causes the following error:</p>
  
  <pre><code>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"'
  </code></pre>
  
  <p>I'm assuming you need a nokogiri step to find this properly. Or if there's a better way, I'm open to suggestions. How can I validate that the image I just uploaded is on the page? Thanks.</p>