ケンヤ・ミサキのプログラミング日記

Ruby, Pythonなどのプログラミング日記です

Capybaraの初期設定をする

前提

Capybara初期設定の目的

前回、Chrome driverのインストールをしたので、いよいよ、Capybaraの諸設定をしていきます。これは、基本的にChrome driverで読み込んだWEBブラウザの情報をCapybaraのメソッドで操作できるようにするための設定です。

RSpecでは、WEBブラウザの可視的なコンテンツ情報(おそらくはhtmlコード)に各種のメソッドを割り当てていきます。このため、Chromeのブラウザ上のコンテンツ情報をCapybaraの変数として操作する必要があるのだと僕は理解しています。

実際は、Capybara からSelenium Webdriverを介してChromeブラウザを動かすのだと思うのですが、その設定にあたり、参考にしたサイトはこちらになります。

こちらのサイトは、基本的にrailsをインストールされている方の書かれているサイトなので、非railsにも適用可能な内容を他のサイトも参考にピックアップして設定していきました。

capybara.rbの作成

以下のコマンドを実行してCapybaraの設定をまとめて規定するcapybara.rbというファイルを作ります。

mkdir spec/support

touch spec/support/capybara.rb

capybara.rbは以下のとおりに設定

require 'selenium-webdriver'
require 'capybara/rspec'

Capybara.configure do |config|
config.default_driver = :chrome
config.javascript_driver = :chrome
config.run_server = true
config.default_selector = :css
config.default_max_wait_time = 5
config.ignore_hidden_elements = true
config.save_path = Dir.pwd
config.automatic_label_click = false
end

Capybara.register_driver :chrome do |app|
# ブラウザーを起動する
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

なお、Seleniumの"オプション設定"は今回は外しておき、コーディングが進んで障害になる場合に適宜追加することにしました。

spec_helper.rbの追加設定

spec_helper.rbの設定はこちらも参考にしました。

冒頭部に以下を記載。

require 'capybara/rspec'
require 'selenium-webdriver'
require 'support/capybara.rb'

Rspec.configureの設定に以下の1文を追記。

RSpec.configure do |config|
config.include Capybara::DSL
end

DSLとはドメイン固有言語(Domain Specific Language)の略称らしいですが、このあたりも勉強不足でおまじないがわりになってます。

一応、こちらの設定でRuby/RSpec/Capybara/Turnipが動きました。次回以降、具体的なスクリプトのコーディングに移っていきます。