मैं रेल 3 के साथ ककड़ी/कैपिबरा का उपयोग कर रहा हूं और अपलोड के बाद एक छवि के अस्तित्व को सत्यापित करने की कोशिश कर रहा हूं। मुझे यकीन नहीं है कि इसे सत्यापित करने के लिए छवि के यूआरएल को कैसे जांचें।मुझे रेल में 3 ककड़ी/कैपिबरा के साथ एक पृष्ठ पर एक छवि कैसे मिलती है 3
मैं इस परिदृश्य है:
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"
सब कुछ अंतिम चरण को छोड़कर गुजरता है।
मैं अपने कदम परिभाषा है, जो अच्छा काम करता है अगर यह पृष्ठ पर पाठ है के लिए यह कोशिश की है, लेकिन एक छवि यूआरएल के लिए नहीं करता है:
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"'
मैं यह सोचते हैं रहा हूँ इसे ठीक से ढूंढने के लिए आपको एक नोकोगिरी कदम की आवश्यकता है। या यदि कोई बेहतर तरीका है, तो मैं सुझावों के लिए खुला हूं। मैं कैसे सत्यापित कर सकता हूं कि जिस छवि को मैंने अभी अपलोड किया है वह पृष्ठ पर है? धन्यवाद।
अपने कदम परिभाषा आप एक आम capybara त्रुटि हो रही है में। अगर मुझे सही याद है तो 'respond.body' के बजाय 'page.body' का उपयोग करने का प्रयास करें। – Mauricio
मुझे नहीं पता कि क्या आप xpath में रेगेक्स का उपयोग कर सकते हैं, लेकिन अगर आपके पास अपने लिस्टिंग इंस्टेंस तक पहुंच है, तो आप केवल स्ट्रिंग इंटरपोलेशन "// img [@src = '/ public/images/# {@ listings_id का उपयोग कर सकते हैं } /foo.png '] " – monocle
इस पृष्ठ में एक अच्छा CSS3 चयनकर्ता संदर्भ है जो आपकी मदद करेगा: http://reference.sitepoint.com/css/css3attributeselectors – sivabudh