ककड़ी, कैपिबरा और सेलेनियम के साथ सेटअप लेकिन कुछ परिदृश्य केवल यादृच्छिक रूप से काम करता है।
rvm पर चल रहा है
रूबी 1.8.6
रेल 2.3.8
सेलेनियम पॉप खुला Firefox 3.6
मैं कोई भाग्य के साथ जोड़ने के लिए प्रयास किया है:ककड़ी, कैपिबरा और सेलेनियम यादृच्छिक रूप से
with_scope(selector) do
click_button(button)
selenium.wait_for_page_to_load
end
त्रुटि उत्पादन कभी कभी यह है:
> 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:
> no button with value or id or text 'create_user_button' found (Capybara::ElementNotFound)
./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'
और कभी-कभी यह सिर्फ काम करता है ....
यह कैसे मेरे 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
ककड़ी-चरणों लग रहा है:
को देखते हुए मुझे साइनअप पृष्ठ
पर हूँ और मैं "user_login" को "body"
के भीतर "[email protected]" के साथ भरता हूं और मैं "user_password" को "body"
के भीतर "गुप्त" के साथ भरता हूं और मैं "गुप्त" के साथ "user_password_confirmation" "शरीर" के भीतर
में भरने और मैं "TERMS_OF_USE" जाँच "शरीर"
भीतर और मैं "create_user_button" प्रेस "शरीर" के भीतर
किसी भी अंतर्दृष्टि होगा महान :)
क्या पूरी तरह से मेरी बंडल में सभी जवाहरात की हत्या करके इसका समाधान करने के मिला आप इसे हल करने के लिए प्रबंधन करते हैं? मुझे यह भी पता चल रहा है कि सेलेनियम ड्राइवर को असंगत आधार पर तत्व नहीं मिलते हैं। यह एक बहुत ही सरल पृष्ठ (यानी कोई AJAX) पर नहीं है, इसलिए समय एक मुद्दा नहीं होना चाहिए। – AlistairH