AutoitでIE(ブラウザ)を操作

AutoitでIEを操作

AutoitはBasicのような文法で、IE、Chromeなどのブラウザを自動で操作することができる便利なツールです。その他にExcel、Libreofficeなども操作可能です。
画像認識でクリックも

もうIE古いので、この記事参考になりません。

ダウン先:  AutoIt – AutoIt

IE操作の別記事

ユーザー関数「IE.au3」の初歩的な使い方を書いています。

IEのコマンド一覧が最後にあります。

_IE_Example()    テスト用のHTMLを表示(サンプルを動かしてみる)

IE.au3の中にすべて含まれています。下のコードをコピーし動かせばOK

これで、Autoitが正常かどうか判断できます。

#include <IE.au3>
Local $oIE = _IE_Example("basic")
テストHTML

IEが立ち上がり、「basic」はこのように表示されます、関数の実験ができます。

HTMLは「IE.au3」の中にあります。

サンプル:開いてるIEでYhooを開き、検索窓に「Autoit」と入れ、検索します

最初試した失敗作:

こちらで拾ったコードを少し改造したものです。

#include <IE.au3>

Global $website_link = "https://www.yahoo.co.jp/"
Global $TextToAdd = "Autoit"

Global $IEpath = "C:\Program Files\Internet Explorer\iexplore.exe"
If WinActivate("[CLASS:IEFrame]") Then
    WinSetState("[CLASS:IEFrame]", "",@SW_MAXIMIZE)
Else
    Run ($IEpath , "" )
EndIf

$oie = _IEAttach(WinGetHandle("[Active]"), "hwnd")
If @error Then
    Run ($IEpath , "")
EndIf
_IENavigate($oie, $website_link)

sleep(1000)
Global $oTitle = _IEGetObjByName($oIE, "p")
_IEFormElementSetValue($oTitle, $TextToAdd)

Exit

このコードの説明:

(1)IEがあればそれを最大化し、なければ新しくIE立ち上げます
(2)検索窓に「Autoit」入力

そこで、止まり進みません。

_IEFormElementSetValue($oTitle, $TextToAdd) 文字入力し、Enterまで

入力はできてますが、最後にEnterキーが押されていないようなので動かないと思います。
試しに「Exit」の前に追加:
  Send(“{Enter}”)
これでEnterはいきましたが、検索しません。検索文字を受け取っていません。
文字入ってるのに、認識してないようです。

調べると、上の関数うまく働かないときあるようです。
_IEAction($oTitle, “paste”)  これで「Autoit」貼り付け
うまくいきました。
 
動いたコード:
#include <IE.au3>

Global $website_link = "https://www.yahoo.co.jp/"
ClipPut("Autoit") ;クリップボードにテキストを入れる

Global $IEpath = "C:\Program Files\Internet Explorer\iexplore.exe"
If WinActivate("[CLASS:IEFrame]") Then
    WinSetState("[CLASS:IEFrame]", "",@SW_MAXIMIZE)
Else
    Run ($IEpath , "" )
EndIf

$oie = _IEAttach(WinGetHandle("[Active]"), "hwnd")
If @error Then
    Run ($IEpath , "")
EndIf
_IENavigate($oie, $website_link)

sleep(1000)
Global $oTitle = _IEGetObjByName($oIE, "p")
_IEAction($oTitle, "paste") ;テキスト貼り付け
Send("{Enter}") ;Enterキーを送る
Exit

コメント

タイトルとURLをコピーしました