Autoit:IEでyahoo開き、好きなワードで検索

AutoitでIEを操作

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

スポンサーリンク

IE操作の別記事

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

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

_IE_Example()    テスト用のHTMLを表示

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

テストHTML

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

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

 

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

最初試した失敗作:

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

 Open web page in existing IE window and add content  – AutoIt Forums

#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キーが押されていないようなので動かないと思います。
試しに最後の行に追加
   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をコピーしました