私はさまざまなブラウザでTCを実行する環境を設定しようとしています。しかし、現在のところTCはChromeブラウザで正常に実行されますが、FireFoxブラウザは開かれていますが、FF、Opera、SafariブラウザでTCを実行しようとしても何も起こりません(テストシナリオは実行されません)。 すべてのブラウザでTCを正常に実行できるように設定を調整するにはどうすればよいですか? TCを並行して実行する方法もありますか?Capybara + Rspec:マルチブラウザTCの実行方法を設定する
require 'test/unit'
require 'selenium-webdriver'
require 'capybara'
require 'rspec'
require "rails/all"
require 'capybara/rspec'
require "page-object"
require 'rspec/expectations'
require 'securerandom'
require '../Test_helpers/login_helper'
require 'capybara-screenshot/rspec'
require 'launchy'
RSpec.configure do |config|
config.include LoginHelper
config.include RSpec::Matchers
config.include Capybara::DSL
environment = 'firefox'
if environment =='chrome'
Selenium::WebDriver::Chrome.driver_path = '../Resources/chromedriver.exe'
Capybara.default_driver = :chrome
Capybara.register_driver :selenium do |app|
options = {
:js_errors => false,
:timeout => 360,
:debug => false,
:inspector => false,
}
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
elsif environment =='firefox'
Capybara.default_driver = :firefox
Capybara.register_driver :selenium do |app|
options = {
:js_errors => true,
:timeout => 360,
:debug => false,
:inspector => false,
}
Capybara::Selenium::Driver.new(app, :browser => :firefox)
end
elsif environment == 'safari'
Capybara.default_driver = :safari
Capybara.register_driver :safari do |app|
options = {
:js_errors => false,
:timeout => 360,
:debug => false,
:inspector => false,
}
Capybara::Selenium::Driver.new(app, :browser => :safari)
end
elsif environment == 'opera'
Capybara.default_driver = :opera
Capybara.register_driver :opera do |app|
options = {
:js_errors => false,
:timeout => 360,
:debug => false,
:inspector => false,
}
Capybara::Selenium::Driver.new(app, :browser => :opera)
end
elsif
Capybara.default_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
options = {
:js_errors => false,
:timeout => 360,
:debug => false,
:phantomjs_options => ['--load-images=no', '--disk-cache=false'],
:inspector => false,
}
Capybara::Poltergeist::Driver.new(app, options)
end
end
Capybara.save_path = "../Reports" # path where screenshots are saved
config.after { |example_group| CapybaraScreenshot.save_and_open_page_path if example_group.exception }
Capybara::Screenshot.register_filename_prefix_formatter(:rspec) do |example|
"screenshot_#{example.description.gsub(' ', '-').gsub(/^.*\/spec\//, '')}"
end
end
Capybara.default_max_wait_time = 15
ありがとうございました!しかし、1つの問題があります。あなたのコードをコピーし、ブラウザ 'Capybara.default_driver =:selenium_firefox'を定義しました。また、私は次のようにテストをタグ付けしました: 'それは成功しました。'、driver::selenium_firefox do '。 FFブラウザを開くだけですが、テストは実行されません。私は間違っている? –
@SerhiiKaihorodovあなたはFF> 47.0.1のselenium-webdriver 2.53.4を使用しています。このバージョンのselenium-webdriverは、FF 47.0.1または45ESRで使用する必要があります。 geckodriverと一緒に使用すると新しいFFで動作するベータ3バージョンがありますが、まだ完全には機能していない多数の機能があります。 Capybaras readme - https://github.com/jnicklas/capybara –
の上部を正確に見てください!どうもありがとうございました! –