2019年3月3日119Seleniumを使ってIE上のシステムを自動で操作(テスト)するテストツールを作っています。Webシステムのテストでは、入力を変えながらの各フォーム、エレメントの操作が必要となり、テストコストが膨大となりがちです。テストコストが高くなるとテストの見落とし、あるいはテストコストが高すいからなかなかソースに手を入れられない、なんていうことにしばしば頭を抱えます。そこで、Seleniumという自動テストツールを使い、開発者にかかるテスト負担を軽減、テスト品質を向上させることも一つの手法です。Seleniumの使用方法は、以下の二つがあります。IDE(Firefoxのアドオン。WebDriverで操作する方法について、その導入部を紹介します。ぼくの環境は次の通りです。WebDriverのダウンロードJava用のSeleniumライブラリと、IE用のDriverを以下からダウンロードします。Server」から32bit版か64bit版を選んでダウンロードします。64bit版はいくつかの問題があるようなので、ぼくは32bit版を使用しています。ダウンロードして解凍すると、IEDriverServer.exeができますので任意の場所に置きます。SeleniumライブラリのダウンロードJavaからSeleniumを操作するためのライブラリをダウンロードします。Bindings」からJavaのDownloadをクリックします。Version2.48を使っています。Releases」ページからダウンロードできます。ページを開くと過去のVersionが選択できますので、欲しいVersionを選択し、その中のselenium-java-***.zipをダウンロードします。こちらもダウンロードしたらファイルを解凍しておきます。プロジェクトへのSeleniumライブラリの追加selenium-java-***.zipを解凍してできたjarファイルをプロジェクトに追加します。selenium-java-***.zipを解凍すると主に以下のファイルができます。selenium-java-2.52.0.jarselenium-java-2.52.0-srcs.jarlibs/*上記のjarファイル(libsはフォルダ内のjarファイル全て)をプロジェクトに追加します。netbeansの場合は新規作成したプロジェクトのルートを右クリックし、プロジェクトのプロパティ->カテゴリ->ライブラリを選択しJAR/フォルダを追加からjarを指定して追加します。プロジェクトエクスプローラのライブラリにjarファイルが表示されればOKです。IEの設定1.保護モードの設定IEの保護モード設定を変更します。SeleniumはIEの保護モード設定がインターネット、ローカルイントラネット、信頼済みサイト、制限付きサイトの4つで統一されていないと動作しません。設定が統一されていれば、保護モードの有効/無効はどちらでも大丈夫です。Selenium起動時だけ保護モードを切り替えたい場合は、テストコードの頭でレジストリを書き換えるなんて方法があります。加えて拡張保護モードの変更も必要です。32bit版を使うのであれば拡張保護モードのチェックを外し、64bit版であればチェックを入れてください。2.レジストリの設定レジストリの設定を追加します。OSのbitによって追加する場所が異なりますので注意してください。Explorer\Main\FeatureControl\FEATURE_BFCACHE上記のキーに対し、iexplore.exeというDWORD値を作成し値を0に設定します。存在しない場合は作ってください。Javaプログラムからのブラウザの開き方ここまでできたらJavaプログラムからIE11ブラウザを立ち上げることができます。実際のコードは以下を参考にしてください。キー入力、クリックその他の操作はハンドルしているウインドウに対してのみ有効です。WebDriverのfindElementメソッドにロケータを指定し、.sendKeysや.clickを使ってエレメントを操作します。対象のエレメントが見つからずにタイムアウトした場合はNoSuchElementExceptionが発生します。Programming119空いた時間に映画・アニメを見ませんか?通勤中、家でゆったりしているとき、そんな空いた時間に映画・アニメを見てみませんか?Amazonプライムは映画やドラマ、アニメが見放題。空いた時間にちょっと見るのに最適です。音楽や本の読み放題、Amazonの買い物が便利になるなどの複合サービスなので映画やアニメのためにわざわざ配信サービスを契約するのはちょっと・・・という方でも満足できます。最新版として各サービスの内容とメリットをまとめましたので、ご興味のある方はぜひご覧ください。Tanakano*ぼくは今、Unityでゲーム作りに挑戦しています。WebDriverのJavaによる使い方について備忘録としてまとめておきます。Tanakano*Seleniumを使ってラジオボタンを操作する方法です。Tanakano*アプリケーションを作っていると、一定間隔で周期的に実行する処理を実装したいときがあります。...【僕が選んだブライダルリング専門店】Tanakano*管理人/HN:たなか小川せいや何者かになりたいWebシステム開発屋。フロントエンド寄り8年目。高校中退、フリーター生活から這い上がり東京大学院でモバイル通信を研究。Tanakano*で好きなこと・楽しいことを伸ばすため活動中。運営中の写真ブログ:Tanakanoフォト詳細プロフィールYouTubeで動画配信はじめました。Twitterでは関心ごとや最新記事の情報を呟いたりしてます。