Selenium IDEを使って、ChromeやIE上でテストスクリプトを実行する方法

2013/05/21
Selenium IDE 2.0
Pocket

Selenium IDEは、ブラウザ操作を記録してSeleniumのスクリプトを生成できるFirefoxプラグインで、プログラムを書かなくてもSeleniumのスクリプトが作成できることから、多くの人に利用されています。

記録したスクリプトの再生をSelenium IDEで行うこともできるのですが、Firefoxプラグインということもあり、これまで実行はFirefoxでしか行うことができませんでした。

しかし、2013年4月26日にリリースされたSelenium IDE 2.0を使えば、Selenium IDEからChromeやInternet Explorerなど他のブラウザ上でのテストスクリプト実行を行えるようになりました。

今回は、SeleniumのコミッターであるSamit Badle 氏のブログ記事 “WebDriver Playback in Selenium IDE is Here”から、この方法をご紹介します。

※ 以下の説明は、Selenium IDEの基本的な利用方法を知っていることを前提としています。

目次

  1. インストール
  2. Selenium IDEの設定
  3. 実行
  4. 既知の問題

インストール

次の順番でインストールしていきます。

  1. Java
  2. Selenium Server
  3. Internet Explorer Driver Server
  4. Selenium IDE 2.0

1. Javaのインストール

Javaのバージョン1.6以上をインストールし、java.exeにPATHを通しておきます。

Javaのインストール方法・PATHを通す方法は、多くの方が様々なサイトで紹介しているので、ここでは省略します。

コマンドプロンプトを起動して

と入力し、表示されたバージョン番号が1.6以上であれば問題ありません。(図1)

Javaのバージョンの確認

図1. Javaのバージョンの確認

2. Selenium Serverのインストール

Seleniumの公式サイトから、「Selenium Server」をダウンロードします。

「selenium-server-standalone-*.jar」(「*」はダウンロード時点での最新のバージョン番号)というファイルがダウンロードされるので、これを任意のフォルダに配置します。

3. Internet Explorer Driver Serverのインストール

Seleniumの公式サイトから、「The Internet Explorer Driver Server」をダウンロードします。

ダウンロードしたzipファイルを解凍すると「IEDriverServer.exe」というファイルがあるので、これを先ほどの「selenium-server-standalone-*.jar」と同じフォルダに配置します。

4. Selenium IDE2.0のインストール

Firefoxを起動してSelenium IDEの画面を立ち上げ、Selenium IDEのウィンドウの左上にあるバージョン番号を確認します。(図2)

Selenium IDEのバージョンの確認

図2.Selenium IDEのバージョンの確認

もしバージョンが2.0以上ならば場合は問題ありません。

古い場合は、Seleniumの公式サイト“Firefoxで”アクセスし、Selenium IDEの最新版をインストールしてください。

Selenium IDEの設定

インストール作業が完了したら、Selenium IDEを起動し、Selenium IDEの画面のメニューの「オプション > 設定」を選び、オプション画面を開きます。

WebDriverタブを開いて「Enable WebDriver Playback」にチェックを入れ、その下のブラウザ名入力欄に、テスト実行時に使用したいブラウザ名(chrome など)を入力します。(図3)

Selenium IDEのオプション画面

図3.Selenium IDEのオプション画面

ここでは、chromeと入力することにします。

設定が終わったら、一度Selenium IDEを再起動します。

実行

準備が整ったので、いよいよテストを実行してみます。

Selenium Serverの起動

まず、コマンドプロンプトで「selenium-server-standalone-*.jar」を配置したディレクトリに移動し、以下のコマンドを実行してSelenium Serverを立ち上げます。(コマンド中の「*」はダウンロードしたいファイル名に応じて変更してください)

MacやLinux環境の場合は、Internet Explorerを扱う必要がないので、

としてください。コマンドプロンプトの表示が図4のようになれば、Selenium Serverの起動は成功です。

Selenium Serverを起動した時のコマンドプロンプトの表示

図4.Selenium Serverを起動した時のコマンドプロンプトの表示

スクリプト実行

まずは通常通りにFirefox上でブラウザ操作を記録します。記録ができたら再生ボタンを押し、このスクリプトを再生しましょう。

Selenium IDEの画面

図5.Selenium IDEの画面

少し待つと、Chromeが起動し、先ほど記録したスクリプトがChrome上で再生されます。

Selenium IDEのオプション画面でブラウザ名を変更すれば、同じスクリプトを他のブラウザでも再生できます。(変更の際のSelenium IDEの再起動は不要です)

Selenium IDEを使って、Chrome上でスクリプトを実行している様子

図6.Selenium IDEを使って、Chrome上でスクリプトを実行している様子

既知の問題

Selenium IDEによるFirefox以外のブラウザでのテスト実行は、まだ新しい機能ですので、現時点で次のような問題があるようです。

  • テストを再生するたびに新しいブラウザウィンドウが増えていきます。各テストケースの最後の行にcloseコマンドを入れればウィンドウの数が増え続けることはないですが、closeコマンドを入れたとしてもテストの実行時間は長くなってしまうので、結構問題ありのような気がします。
  • エラーがおきても、テストがそこで終わらない場合があります。
  • 予期しないエラーが出た場合に、ポップアップメッセージが表示される場合があります。
  • 現在選択しているコマンドを1行だけ実行する機能には未対応です。
  • 「検索」ボタンによる対象の検索がうまく動かない場合があります。
  • タイムアウト値の設定は無視されます。
  • スクリーンショットを撮る機能がうまく動かない場合があります。
  • Seleniumのユーザー拡張・プラグインの機能がうまく動かない場合があります。
Pocket

    

Selenium IDEを使って、ChromeやIE上でテストスクリプトを実行する方法」への2件のフィードバック

  1. hotaruya

    chromeを対象に、「スクリプトを実行」まで進めたところ、下記のエラーが検出されました。

    [error] Could not connect to Selenium Server. Have you started the Selenium Server yet?

    一旦、ブラウザは立ち上がるのですが、ブランクページの段階で閉じてしまい、テストを続行しません。
    ※Selenium Serverの起動には成功しています。
    解決策に心当たりがあれば、ご教授いただければと思います。

    ●CMD側のメッセージ
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
    rce)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.
    java:193)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHa
    ndler.java:145)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.ja
    va:554)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriv
    er.java:216)
    at org.openqa.selenium.chrome.ChromeDriver.startSession(ChromeDriver.jav
    a:182)
    at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.jav
    a:111)
    at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.jav
    a:115)
    at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:161)

    at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:129)

    … 13 more
    10:07:53.756 WARN – Exception: unknown error: unable to discover open pages
    (Driver info: chromedriver=2.3,platform=Windows NT 6.1 SP1 x86) (WARNING: The
    server did not provide any stacktrace information)
    Command duration or timeout: 24.77 seconds

    返信
    1. TRIDENT

      気づくのが遅れましてすみません。

      https://code.google.com/p/chromedriver/issues/detail?id=679
      ↑こちらに似たような現象が報告されており、それによればchromedriver.exeの問題であり、
      最新のchromedriver.exeをダウンロードし直せば治るのではないかと思われます。

      CMDのエラーメッセージを見たところchromedriverのバージョンが2.3のようですので、
      https://code.google.com/p/chromedriver/wiki/WheredAllTheDownloadsGo?tm=2
      から最新のchromedriver.exeをダウンロードしてみてはいかがでしょうか。

      返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です