LoadError при использовании Selenium: нет такого файла для загрузки - spec

В основном я только начал изучать использование Selenium на Rails 3, я начал с Selenium IDE и сгенерировал скрипт в формате RSpec.

Перед запуском этого скрипта я установил гемы для selenium-client, Selenium, selenium-rails а также selenium-webdriver

Но так как я использовал команду rspec для запуска этого скрипта, я получил

C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:58:in `require': no such file to load -- spec (LoadError)
    from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:58:in `rescue in require'
    from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-client-1.2.18/lib/selenium/rspec/spec_helper.rb:2:in `<top (required)>'
    from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from C:/Users/qsang/Desktop/Code/NextBigThing/spec/Selenium/create_new_user.rb:5:in `<top (required)>'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `load'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `block in load_spec_files'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `map'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `load_spec_files'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/command_line.rb:18:in `run'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:55:in `run_in_process'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:46:in `run'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:10:in `block in autorun'

Я попытался найти ответ, единственный случай, который я нашел, который близок к моему, это папка Selenium Can't Find 'spec', на которую еще никто не ответил.

Может кто-нибудь помочь мне, пожалуйста, спасибо заранее.

3 ответа

Решение

Сначала я нашел руководство по Cucumber + Webrat + Selenium, которое действительно полезно

Во-вторых, я удалил

require "selenium/rspec/spec_helper"
require "spec/test/unit"

И добавил

require 'spec_helper'

куда spec_helper содержится в папке спецификации

Я также удалил все методы, которые есть append_after

По сути, теперь тестовые случаи запускаются, это не лучшее решение, но это то, что я делал до сих пор.

PS: нужно скачать сервер Selenium с http://seleniumhq.org/download/ и запустить сервер с java -jar selenium-server-standalone-2.0b2.jar


spec_helper

# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'

# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

RSpec.configure do |config|
  # == Mock Framework
  #
  # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
  #
  # config.mock_with :mocha
  # config.mock_with :flexmock
  # config.mock_with :rr
  config.mock_with :rspec

  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
  config.fixture_path = "#{::Rails.root}/spec/fixtures"

  # If you're not using ActiveRecord, or you'd prefer not to run each of your
  # examples within a transaction, remove the following line or assign false
  # instead of true.
  config.use_transactional_fixtures = true
end

Проблема в вашей версии Rspec. Драгоценные камни Selenium ищут Rspec 1.2.8 или выше, но Rspec претерпел радикальные изменения в своей классовой структуре в 2.0. Selenium ищет файлы, классы и методы, которых больше нет в Rspec 2. Если вы удалите текущую версию Rspec, то:

gem install rspec -v 1.3.1

Это должно исправить ваши проблемы. Если вы используете Rspec для чего-то другого в вашей автоматизации, это может быть нереальным вариантом.

У меня тоже проблемы с этим. Однако я пытаюсь запустить это автономно, а не внутри проекта rails3. Однако я пытаюсь использовать ruby ​​1.9.2.

Я на самом деле пытаюсь протестировать веб-сайт IIS/ASP, который мы хотим постепенно преобразовать в рельсы. Первым делом нужно было взять наш превосходный набор тестовых наборов "Selenese", экспортировать их как RSpec и запустить их с использованием ruby ​​и т. Д. Я новичок в мире ruby ​​/rails и считаю это очень расстраивающим. То, что я думал, что несколько часов работы превратились в дни...

Я придерживался схожей тактики с вашей. Тем не менее, я просто удалил все драгоценные камни и требовать заявления, кроме require "selenium/client", Также я переименовал append_after в after, append_after метод определен в selenium/rspec/spec_helper файл (я проверил lib).

Я часами искал в Интернете, и я не могу найти ответ на вопрос, почему require "selenium/rspec/spec_helper" утверждение не удается - кажется, что-то называется spec (что, я думаю, так называется RSpec) отсутствует.

Я думаю, что он работает, но не хватает какой-то функциональности. spec_helper кажется, обрабатывает состояние системы захвата и другие полезные функции.

Мне интересно знать, что вы положили в свой spec_helper файл. Не могли бы вы опубликовать это?

Другие вопросы по тегам