IE11での動作確認をすることを目的にSeleniumの環境構築をした際のメモです。
が、ついでにChromeの環境もいっしょに作ってみました。
まずは環境構築編。
RubyからSeleniumをキックできる環境構築まで。
#SeleniumIDEの導入
※FireFoxのインストールは割愛します。
##SeleniumIDEのインストール
FireFoxで以下にアクセスし、Selenium IDEをインストールする。
https://addons.mozilla.org/ja/firefox/addon/selenium-ide/
#Ruby環境
Ruby 2.3.1(2.3.3でも確認しました)
(RubygemsとDevKitの導入が必要?)
##bundlerのインストール
gem install bundler
##必要なGemのインストール
source "https://rubygems.org"
gem "selenium-webdriver"
gem "rspec"
gem "pry-byebug"
bundle install
#WebDriverのダウンロード
ダウンロードサイト
##FireFox/Chrome/Edge用ドライバ
上記ダウンロードサイトの「 Third Party Drivers, Bindings, and Plugins 」からダウンロードする。
##IE用ドドライバ
上記ダウンロードサイトの「 The Internet Explorer Driver Server 」から32bit or 64bitをダウンロード
※ 64bitだとスクリプトの動作が極端に遅くなる現象が発生しました。
64bit環境でも32bitの方を使うと解消されました。
→参考Selenium の IE Driver で SendKeys したときに1文字ごとの入力が異様に遅い場合の対処
上記ファイルをダウンロードし、配置したフォルダにPathを通す。
#IE11の環境設定
##IE11の保護モードを有効にする
インターネットオプション
の セキュリティ
タブから、
- インターネット
- ローカルイントラネット
- 信頼済みサイト
- 制限付きサイト
の4つ全てについて 保護モードを有効にする にチェックを入れます。
##拡張保護モードを無効にする
同、 詳細設定
タブから、
拡張保護モードを有効にする のチェックを外します。
#動作確認
動作確認用プログラム
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox
# driver = Selenium::WebDriver.for :chrome
# driver = Selenium::WebDriver.for :ie
driver.get "http://www.google.co.jp/"
# driver.quit
実行
ruby seleniumtest.rb
#補足(ってゆーか、ハマったとこ)
実行環境にもよりますが、会社だと社外に接続するためにはProxyの設定が必要な場合があります。
今回の環境もProxyが必要な環境でした。
そして、Proxyの環境変数にやられました (T-T)
環境変数で HTTPS_PROXY や HTTP_PROXY を設定する必要がある
しかし、HTTP_PROXYが設定されていると、 ローカルホストで動作しているWebDriverへProxy経由でアクセスしようとしてエラー になってしまいます。
こちらを参考に解決しました。
→Webブラウザの自動操作 (Selenium with Rubyの実例集)
「http_proxyという環境変数が定義されている場合」を参照
以上、とりあえず、環境構築まででした。
~スクリプト作成~に続きます。