LoginSignup
9
7

More than 5 years have passed since last update.

ubuntuでSelenium2を使ったIEブラウザテスト

Last updated at Posted at 2015-07-23

ubuntuでSelenium2を使ったIEブラウザテスト

まずubuntu環境にVirtualBoxとModernIEをインストールします

VirtualBoxインストール

sudo apt-get update
sudo apt-get install virtualbox

ModernIEインストール

Modern.IEは90日間無償で利用できる、IEテスト用のVMイメージです。
ライセンスが切れたら削除して再度ダウンロードしてくる必要があります。
なので、Modern.IEを利用するために必要なことは手順書として残しておいたほうがよさそうです。

日本語化する

ubuntuからVirtualBoxに接続するための設定

  • ファイル > 環境設定 > ネットワーク > ホストオンリーネットワークを追加
  • 設定 > ネットワーク > アダプター2でホストオンリーアダプタを設定すると先ほど追加したネットワークが名前の箇所に自動で割り当てられる
  • ipconfigで192.168.xxx.xxxが割り当てられていれば成功です。

ubuntuに存在するテストコードからModern.IEのブラウザを起動させるためSelenium Standalone Serverを構築する

  • Modern.IE環境にて、Selenium Standalone Serverを任意の場所にダウンロード(http://www.seleniumhq.org/download/)
  • Selenium Standalone Serverをダウンロードした同じ場所にThe Internet Explorer Driver Serverをダウンロードする
  • 起動コマンド。リッスンポートを4444にした
java -jar selenium-server-standalone-2.46.0.jar -Dwebdriver.ie.driver=./IEDriverServer.exe -p 4444 > ./active.log 2> error.log

ファイアーウォールにポート4444のアクセス許可を追加

  • コントロールパネル > システムとセキュリティ > Windowsファイアウォール > 詳細設定
  • 受信の規則画面で、新しい規則をクリックし、ポートにチェック、TCPを選択し、特定のローカルポートに4444を指定して適当な名前をつけて保存。

ubuntuに存在するテストコードからModern.IEのブラウザを起動させてテストする

ログインテストを行う処理です。ieドライバーを利用するように設定します。

spec/features/login/login_spec.rb
describe 'ログイン管理' do

  before :each do
    # IEドライバーを利用するように設定。このあとのsetup_utility.rbのsetup_ieを実行します。
    @driver = SetupUtility.setup_ie wait_time: 30

    # ページインスタンスの用意
    @private_login_page = PrivateLoginPage.new(@driver)

    # オペレータの用意
    @login_op    = LoginOperator.new(@driver)
    @entry_op    = EntryOperator.new(@driver)
    @front_op    = FrontBlogOperator.new(@driver)

    # ページを開く
    @private_login_page.open
  end

  after :each do
    @driver.quit
  end

 describe "ログイン:Private" do
   〜〜 省略 〜〜

ログインテストから実行され、各種ドライバーをセットアップする処理です。
IEのドライバをセットアップする箇所のみ記載しています。

spec/support/selenium/setup_utility.rb
  # IEのドライバをセットアップする
  def setup_ie(args)
    # タイムアウト設定
    $implicit_wait_time = args[:wait_time]  ||  30

    # IEドライバーを設定
    capabilities = Selenium::WebDriver::Remote::Capabilities.ie

    # ドライバを生成します。192のIPは先程Modern.IEでipconfigで確認したものを設定します。
    # 4444はSelenium Standalone Serverがリッスンしているポートです。
    # /wd/hubはSeleniumサイトのドキュメントに記載している通りに指定しています。
    driver = Selenium::WebDriver.for :remote,
                                     :url => 'http://192.168.56.101:4444/wd/hub', 
                                     :desired_capabilities => :ie

    # タイムアウト時間を設定する
    driver.manage.timeouts.implicit_wait = $implicit_wait_time

    return driver
  end

こんな感じです。これでIEの自動テストもバッチリ!かも。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7