2014-04-20 21 views
5

Capybara/capybara-webkit kullanan Javascript dışı özellik ve Javascript özellik özelliklerine sahibim.Javascript modundayken, Javascript özellikli özelliklerim neden aktarılıyor?

Javascript dışı modda başarısız olmasını beklediğim bazı testler var, ancak bunlar geçiyor. Tarayıcımdaki işlevselliği Javascript ile kapattım ve işlevsellik gerçekten beklendiği gibi çalışmıyor. Ama Capibara'da işe yarıyor.

Ayrıca, yapılandırmamda gizlenen bir şey olmadığından emin olmak için, tek tek sınamaya js: false eklemeyi de denedim. Spec hala geçer.

Selenium gem, Gemfile'ımda yer almıyor.

+2

İfade etmenin yolu, Rack :: Test sürücüsü (varsayılan) olan capybara'nın Javascript'i çalıştırmamasıdır, webkit sürücüsüyle capybara ise Javascript'i çalıştırır. Yani, testlerin neden başarısız olduğunu bilmiyorum. Kodunuzun veya yapılandırmanızda neyin başkalarına yardımcı olması için sorunuza ekleyebileceğinizi düşünebilirsiniz. –

+0

Bize özelliklerinizi/destek/env.rb'nizi gösterin. Sorunuzu şimdi okuduğumda, her zaman capybara-webkit'i kullanıyorsunuz ve javascript'i mükemmel bir şekilde çalıştıracaktır. – nathanvda

cevap

2

İki olasılık görüyorum: testleriniz doğru, ancak beklenmedik bir şekilde geçme nedenleri olabilir, ya da testleriniz yanlış ve Javascript'te çalıştırdığınızda yanlış nedenlerle geçiyor olabilir.

hem olasılıklara nasıl uygulanacağı için debug Birkaç öneri:

  • kullanın bir ayıklayıcı. (Eğer varsa, ne öğrendiğinizi bize bildirin.)

  • Rails günlüğüne, hangi denetleyici eylemlerinin çağrıldığını ve hangi sırada olduğunu görmek için tek bir özellikten bakın.

  • Sayfanızın anlık görüntüsünü görmek için save_and_open_page kullanın ve özelliğinizin aradığınız öğenin geçip geçmeyeceğini öğrenin.

kez daha kontrol Javascript ile çalıştırdığınızda testleri:

  • yerine Kapibara-webkit sürücünün the poltergeist driver onları çalıştırın. Javascript hata mesajlarını bildirmek için capybara-webkit ve can be configured'dan daha iyi hata mesajları verir.

  • Sayfanın gerçek bir ekran görüntüsünü almak ve belirli bir nedenden ötürü belirli bir içeriğin geçmediğini doğrulamak için save_screenshot kullanın. Eğer RSpec Javascript çalışır durumda olup olmadığını emin olmak istiyorsanız

, bir Kapibara-webkit veya phantomjs süreç çalışan olup olmadığını görmek için ps kullanın.

+0

teşekkürler. Bu yardımcı olabilir. Ancak ben poltergeist swiching sürecinde sıkışmış, belki de orada yardımcı olabilir: http://stackoverflow.com/questions/24004130/ –