*目次 [#dffb307c]
#contents


*autoitって? [#db64a74e]

Windows用

自動化用スクリプトツール


簡単にexeファイルに変換できる。

seleniumはダイアログボックスやアラート、そして認証が苦手

そこで、このツールの出番となる。

**感想 [#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で取得して引数にしている例が掲載されている。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS