覚えたことを忘れない為のメモ

watij その1

最終更新:

11rtksn

- view
管理者のみ編集可


自動テストツールの selenium と同じことが出来る watij というツールを見つけた。
watij は java で InternetExplorer を操作する自動テストツール。
HTTPS通信、クライアント認証、複数ドメインをまたがるテスト、等も問題なく動作するみたい。
以下のサイトからダウンロード可能。
http://watij.com/

まずは上記サイトどおりに BeanShell を使って動作確認をした。
ダウンロードした watij_release_XXX.zip(XXXはバージョン番号)を解凍すると、
launchWatijBeanShell.bat というバッチファイルがある。このバッチファイルを実行すると BeanShell が起動する。

バッチファイルの中身は以下。
@echo off
setlocal

copy .\".bshrc" "%USERPROFILE%\"
copy .\jniwrap.dll %Windir%\system32\

:START

SET CP_ARGS=.\lib\junit.jar; .\lib\resolver.jar; .\lib\nekohtml.jar;
.\watij.jar;.\lib\watijcom.jar;.\lib\jniwrap-3.4.jar;.\lib\comfyj-2.2.jar;
.\lib\winpack-3.5.jar;.\lib\xalan.jar;.\lib\xml-apis.jar;.\lib\serializer.jar;
.\lib\xercesImpl.jar;.\lib\bsh.jar;.\lib\jexplorer-1.7.jar;.\lib\mshtml.jar;

java -cp %CP_ARGS% bsh.Console

:END

各コマンドの意味は以下。

  • @echo off
「@echo off」コマンドは、バッチファイルに記述されたコマンドを
画面に表示しないということ。


  • setlocal
「setlocal」コマンドは、バッチファイルの中で設定・変更された環境変数を、
そのバッチファイルの実行中だけ有効にしてくれるコマンド。
ただし、このままでは他のバッチファイルやコマンドラインを使用する時も、
この環境変数が変更されたままになる。
「endlocal」コマンドを指定すれば、setlocalコマンド以降に変更された
環境変数をリセット出来る。


  • copy .\".bshrc" "%USERPROFILE%\"
  • copy .\jniwrap.dll %Windir%\system32\
「copy」コマンドはファイルをコピーする。
「%USERPROFILE%」は「ドライブ名:\Documents and Settings\[ユーザ名]」までのパスを表す。
「%Windir%\system32\」は「ドライブ名:\WINDOWS\system32」までのパスを表す。
(watij を実行するには、system32 フォルダに jniwrap.dll を置く必要がある。)


  • :START
「start」コマンドは別のコマンドプロンプトを起動させて、処理を実行する。


  • SET CP_ARGS=.\lib\junit.jar;.\lib\resolver.jar;.\lib\nekohtml.jar;.\watij.jar;
.\lib\watijcom.jar;.\lib\jniwrap-3.4.jar;.\lib\comfyj-2.2.jar;
.\lib\winpack-3.5.jar;.\lib\xalan.jar;.\lib\xml-apis.jar;.\lib\serializer.jar;
.\lib\xercesImpl.jar;.\lib\bsh.jar;.\lib\jexplorer-1.7.jar;.\lib\mshtml.jar;

「SET」コマンドは環境変数の値を表示・変更できるコマンド。
ただし設定した環境変数は、現在実行中のコマンドプロンプトのみに有効。


  • java -cp %CP_ARGS% bsh.Console
「java -cp」でクラスパスを設定。
「bsh.Console」は、BeanShellをコンソールモードで起動する。


BeanShell を起動し、サイトどおりにコードを入力しても
以下のコードで watij.runtime.UnknownObjectException になり上手くいかなかった。
bsh % ie.textField(name,"q").set("Watij");
bsh % ie.button("Google Search").click();
属性値に「半角スペース」+「漢字」のような値を持ったHTMLの要素を
watij で操作しようとするとこのエラーがでるみたい。原因不明・・・。
google(日本語版)サイトのテキストボックスとボタンには
title属性、value属性に「"Google 検索"」という属性値があるので
ボタン・テキストボックスの操作が上手くいかない。
watij の javadoc を見ると textField() , button() メソッドは、HTMLの要素をint 型でも指定できる。
この方法だと問題なく動作する。
bsh % IE ie = new IE();
bsh % ie.start("http://www.google.com");
bsh % ie.textField(0).set("watij");
bsh % ie.button(0).click();



           TOP 次へ>>
1|23
記事メニュー
目安箱バナー