2010-06-02 3 views
7

오이, 카피 바라 및 셀레늄으로 설정하지만 일부 시나리오는 무작위로만 작동합니다.오이, 카피 바라 & 셀레늄은 임의로 작동합니다

with_scope(selector) do 
    click_button(button) 
    selenium.wait_for_page_to_load 
end 

는 오류 출력은 때때로 :
레일을 RVM에 2.3.8
셀레늄을
루비 1.8.6을 실행
오픈 파이어 폭스 3.6

내가 행운과 함께이 추가 시도 아빠 :

> Given I am logged in and have created newsletter and subscribers       # features/step_definitions/newsletter_send_steps.rb:108 
     end of file reached (EOFError) 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/protocol.rb:133:in `sysread' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/protocol.rb:133:in `rbuf_fill' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/timeout.rb:62:in `timeout' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/timeout.rb:93:in `timeout' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/protocol.rb:116:in `readuntil' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/protocol.rb:126:in `readline' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/http.rb:2020:in `read_status_line' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/http.rb:2009:in `read_new' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/http.rb:1050:in `request_without_fakeweb' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/http.rb:1037:in `request_without_fakeweb' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/http.rb:543:in `start' 
     /Users/christianhager/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/1.8/net/http.rb:1035:in `request_without_fakeweb' 
     ./features/step_definitions/web_steps.rb:24:in `__instance_exec2' 
     ./features/step_definitions/web_steps.rb:9:in `with_scope' 
     ./features/step_definitions/web_steps.rb:9:in `with_scope' 
     ./features/step_definitions/web_steps.rb:23:in `/^(?:|I)press "([^\"]*)"(?: within "([^\"]*)")?$/' 
     features/enhanced/newsletter_send1.feature:7:in `Given I am logged in and have created newsletter and subscribers' 

그리고 othertimes :

,115,588,284,

때로는 그냥 작동합니다 ....

이 내 env.rb이

ENV["RAILS_ENV"] ||= "cucumber" 
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment') 

require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support 
require 'cucumber/rails/world' 
require 'cucumber/rails/active_record' 
require 'cucumber/web/tableish' 
require 'capybara/rails' 
require 'capybara/cucumber' 
require 'capybara/session' 
require 'cucumber/rails/capybara_javascript_emulation' 
require "selenium-webdriver" 

Capybara.default_driver = :selenium 
Capybara.default_wait_time = 5 
Capybara.ignore_hidden_elements = false 
Capybara.default_selector = :css 

ActionController::Base.allow_rescue = false 

require 'database_cleaner' 
DatabaseCleaner.strategy = :truncation 

Before do 
Capybara.reset_sessions! 
DatabaseCleaner.clean 
end 

Cucumber::Rails::World.use_transactional_fixtures = false 


같은 오이-단계를 모습입니다 :
내가 가입 페이지
오전 감안할 때 "body"내에 "[email protected]"으로 "user_login"을 입력하십시오
"body"내에 "user_password"를 "secret"로 기입하십시오
그리고 나는 "몸"에서 "비밀"과 "user_password_confirmation"
를 입력 내가 "몸"
에서 "TERMS_OF_USE"을 확인 내가 "몸"에서 "create_user_button"를 눌러

는 어떤 통찰력은 훌륭한 :) 것

+0

나요 완전히 내 번들에있는 모든 보석을 죽임으로써이 문제를 해결하는 데있어 이 문제를 해결할 수 있습니까? 셀렌 드라이버가 일관성없는 요소를 찾지 못하는 것 같습니다. 이것은 매우 간단한 페이지 (즉, 아약스 없음)에 있으므로 타이밍이 문제가되지 않아야합니다. – AlistairH

답변

3

HTTP 조롱입니다. 환경에서 fakeweb 또는 webmock을 제거하면 (완전히) 다시 작동해야합니다. :: WebDriver.for 셀레늄을 : 파이어 폭스, :

아담 그린에 의해 마지막 코멘트로 커브를 설정에 대한 작동합니까 http_client => 셀레늄 :: WebDriver :: 원격 :: HTTP를 난간 ::을

Read the thread on the Capybara group.

웹 드라이버가 현재 억제되어있어 fakeweb 또는 webmock을 사용하여 기록 된 http 트래픽을 재생하는 데 문제가 있습니다. 따라서 Capybara를 통해 트래픽을 가짜로 삼는 것이 목표라면 다시 테스트 할 수 있지만 동일한 브라우저에서 트래픽을 재생할 수는 없습니다. (우리는 VCR을 사용하여 기록하고 있습니다.)

자갈 지원 추가는 Fakeweb의 Github 발행 사이트에 "티켓"으로 표시됩니다.

0

최근 오이/카피 바라/akephalos/fakeweb와 레일 2.3 응용 프로그램이 부딪쳤다하지만, 궁극적으로 (그들은 .bundle/에 보관하고 다시 설치하는 곳.

관련 문제