- 追加された行はこの色です。
- 削除された行はこの色です。
*目次 [#dffb307c]
#contents
*autoitって? [#db64a74e]
Windows用
自動化用スクリプトツール
簡単にexeファイルに変換できる。
seleniumはダイアログボックスやアラート、そして認証が苦手
**ダウンロード [#q6b5a9a4]
そこで、このツールの出番となる。
**感想 [#nf965b01]
これ作った人は頭よすぎると思う。エディターとか、
コンパイラーとか、含まれているフリーのツールって見たことがない。
非常にハイクオリティーだ。こんなことができるのは、通常のプログラミングスタイルでは到底なしえない。
コンパイラーを作れるぐらいだから、独自言語で開発してると予想。
*日本語の解説サイト [#l0f574e7]
**AutoItXやツールについて解説しているページ [#y6fe1d73]
http://blog.livedoor.jp/blackcode/tag/AutoItX
**IBMのサイト [#k01a67fe]
http://www.ibm.com/developerworks/jp/opensource/library/os-webautoselenium/
***紹介されているIE用ダウンロード用コード [#t2fa1ee4]
If $CmdLine[0]<1 Then Exit EndIf
handleDownload($CmdLine[1])
Func handleDownload($SaveAsFileName)
Dim $download_title="File Download"
If WinWait($download_title,"",4) Then
WinActivate($download_title)
Sleep (1000)
ControlClick($download_title,"","Button2","")
Dim $save_title="Save As"
WinWaitActive($save_title,"",4)
ControlSetText($save_title,"","Edit1", $saveAsFileName)
Sleep(1000)
if FileExists ($SaveAsFileName) Then
FileDelete($SaveAsFileName)
EndIf
ControlClick($save_title, "","Button2","")
Return TestFileExists($SaveAsFileName)
Else
Return False
EndIf
EndFunc
**firefox版でつかう際のヒント [#wc4833c2]
下記のサイトでIE版とFirefox版の比較が紹介されていた
https://groups.google.com/forum/#!topic/selenium-users/fvKmN8ONpkc
抜粋する。
***IE:ファイルダウンロード [#l287390c]
WinWaitActive("File Download - Security Warning","", 10)
If WinExists("File Download - Security Warning") Then
WinActivate("File Download - Security Warning")
Send("!s")
EndIf
WinWaitActive("Save As", "", 10)
Send("!s")
***Firefox:ファイルダウンロード [#ac72a384]
WinWaitActive("[TITLE:Opening ; CLASS:MozillaDialogClass]","", 10)
If WinExists("[TITLE:Opening ; CLASS:MozillaDialogClass]") Then
WinActivate("[TITLE:Opening ; CLASS:MozillaDialogClass]")
Send("{ENTER}")
EndIf
*ダウンロード [#q6b5a9a4]
http://www.autoitscript.com/site/autoit/downloads/
あれ?AutoItXっていうActiveXもあるんだ。へぇー。
*つれづれなるままにインストール [#o8542301]
ダウンロードしたファイルを、デフォルトでインストールしてみた。
そうそう、.au3ファイルは、エディターを開くって設定しておいた。
なにはともあれ、上記のスクリプトが動けばいい。
ダウンロードが終わると、チュートリアルのヘルプがでてきた。
おおー、なんと親切な。
英語だけどねー。
**Hello World発見 [#gc2be9c0]
ヘルプの使い方の一番最初にコードが書いてあった。
#include <Constants.au3>
MsgBox($MB_SYSTEMMODAL, "My First Script!", "Hello World!")
これをメモ帳とかで.au3という拡張子を付けて保存するっぽいぞ。
**どうやって実行するの? [#u7d9c21f]
インストールが終わると、WindowsのプログラムのメニューにAutoIt v3というフォルダができており、その中に、Run Scriptというのがあった。
これかなぁ、ポチっと
ファイル選択画面が出てきた。先ほどのHello Worldを保存したファイルを選択してみる。
見事ダイアログが出てきた。
**実行ファイル形式に変換したいんだけど [#j7d102cb]
WindowsのプログラムのメニューにAutoIt v3というフォルダができており、その中に、Compile script to .exe というのがあった。
これっぽいな、よし、ポチッと。
専用のダイアログが出てきた。
Sourceっていうところに、拡張子が.au3のファイルを入れて、あとは適当にexeファイルの名前入れておけばよさそうだね。
やってみよう。
au3のファイルを入れたら、exeファイルも同名で勝手に入った。
Convertボタンをクリックする。
おおー、できてる、できてる。クリックしてみると、先ほどと同じ結果が得られた。
**よし、要領はわかった。 [#k6204476]
あとは、firefox用の細かい設定だな。
でも、だれかすでにつくってんじゃないか?
ぐぐってみるとー。あった。
http://qtp-help.blogspot.jp/2009/07/selenium-handle-dialogs.html
でも、これって、Windowのタイトル文字列と一致しているかみてるでしょ、ってことは、
タイトルが英語だったら、効かないんじゃないかとおもうんだよね。
実際に試してみないとなぁ。
ファイルを保存して開くと、
今度は、付属のエディタで開くことができた、インストール時に、デフォルトで編集するように指定していたからだ。
で、エディタから、ビルドできる。.exeファイルができた。
これって、ダイアログが出ているときに、実行したらいいのかな?
やってみよう。
**seleniumのダイアログを出した状態で、動かしてみる。 [#fdd5de7b]
seleniumのダウンロードダイアログを出した。
ダイアログのタイトルは、もろ日本語。
このツールをJavaから呼び出しているコードを抜粋すると次のようになっていた。
dialog = new String[] { "Save_Dialog_FF.exe","Opening","save" };
Runtime.getRuntime().exec(dialog);
引数は2つだ。
まずは、
Save_Dialog_FF.exe Opening save
という引数で実行してみる。
反応がない、引数は日本語に置き換える必要が有りそうだ。
これでどうだ。
Save_Dialog_FF.exe 開く save
動いた!やったぜ!
*すでにダウンロード用に変換したファイルを置いてあるサイト [#g166a4e7]
http://www.mythoughts.co.in/2013/11/download-file-using-selenium-webdriver.html#.UudOCdKAbcs
ここが紹介しているサンプルだと、引数にhrefをSeleniumで取得して引数にしている例が掲載されている。