كيف يمكنني أن أرى ما وجدته Capybara في خطوة خيار فاشلة؟

StackOverflow https://stackoverflow.com/questions/2413992

سؤال

بدأت الترحيل من الخيار + Webrat إلى الخيار + Capybara. الآن يبدو أن سلوك "يجب أن أرى" يختلف إلى حد ما. معظم هذه فشل الآن، على الرغم من أنني لم أغير أي شيء على الصفحة. لقد استبدلت المقتطف الذي يجب العثور عليه مع بعض الأشياء الموجودة في كل صفحة وبعض النصوص التي يعمل بها ونص آخر لا. لا يمكنني العثور على أي نمط في ما هو موجود في محتوى الصفحة وما ليس كذلك. تستخدم Webrat طباعة ما هو محتوى الصفحة هو أنه وجد، في حالة عدم احتواء العبارة المطلوبة. هل هناك على أي حال للحصول على Capybara تظهر النص الذي حصلت عليه من الصفحة التي حاولت العثور على النص؟

هل كانت مفيدة؟

المحلول

حاول إضافة هذه الخطوة:

Then show me the page

نصائح أخرى

Then show me the page يدعو Webrat / Capybara الأساسي save_and_open_page طريقة. وجدت أن مفيدة عند العمل مع شريحة لحم.

إذا كنت ترغب في فتح المتصفح الصفحة عند فشل الصفحة في استخدام جوهرة "إطلاق". أضفها إلى ملف GEM الخاص بك، ثم في / ميزات / دعم إنشاء ملف يسمى Debugging.rb مع المحتويات:

After do |scenario|
   save_and_open_page if scenario.failed?
end

إذا كنت تستخدم JavaScript أو Ajax في صفحاتك وتريد أن نرى ما يحدث، فقد وجدت أن برنامج تشغيل السيبري جيد جدا في السماح لك بالدخول في دوم ومعرفة ما يحدث.

إذا قمت بإعداد برنامج تشغيل Capybara الخاص بك مع خيار تصحيح الأخطاء عن بعد:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, inspector: true)
end

يمكنك بعد ذلك وضع السطر التالي في خطواتك:

page.driver.debug 

الذي ينطلق مستعرض كروم جديد مع مجموعة DOM State الحالية، مما يتيح لك الحصول على وحدة التحكم. (على الإصدار الخاص بي من Linux، اضطررت إلى Symlink Chromium إلى متصفح Chromium ولكنه يعمل بشكل جيد).

معلومات المصدر: http://jonathanleighton.com/articles2/poltergeist-0-6-0/

Then show me the response لم تنجح من أجلي الخيار 1.1. لقد وجدت مفيدا لكتابة خطوة باستخدام أمر Capybara:

print page.html

هذا يخرج الحالة الحالية لدوم

يمكنك أيضا استخدام "ثم أرني الاستجابة" التي تخرج HTML إلى وحدة التحكم إذا كنت لا ترغب في استخدام المستعرض.

يمكنك دائما إجراء تسديدة لشاشة عندما فشل شيء ما. أنا تصحيح الكثير من الميزات الفاشلة بهذه الطريقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top