私はセレンでテストしていますが、ページの読み込み時に発生するものがたくさんあります。私は autoit について知り、すべての JavaScript ダイアログの問題を処理できると考えていました。これを処理できるautoitスクリプトをWebで検索していました...
他のオプションも同様に役立ちます!
必ずしもすべてのコードが必要なわけではありませんが、正しい方向へのいくつかのポイントが役立ちます。
私はセレンでテストしていますが、ページの読み込み時に発生するものがたくさんあります。私は autoit について知り、すべての JavaScript ダイアログの問題を処理できると考えていました。これを処理できるautoitスクリプトをWebで検索していました...
他のオプションも同様に役立ちます!
必ずしもすべてのコードが必要なわけではありませんが、正しい方向へのいくつかのポイントが役立ちます。
よし、この解決策はうまくいく...ここで2つのウィンドウを閉じることができました。また、クールな名前に基づいてポップアップを処理できるようになります。スクリプトを起動すると、常にバックグラウンドで実行されます。終了したい場合は、タスク マネージャーまたは右側のタスク バー領域から autoit を閉じるだけです。
While True
If WinWait('Name of your Popup', '', 1) == 1 Then
;Wait for page to load if found
Sleep(10000)
;Close Page
Send('!{F4}')
Sleep(5000)
;Confirm Dialog
Send('{ENTER}')
Sleep(1000)
;Close Lanucher Page
Send('!{F4}')
Sleep(5000)
;Confirm Dialog
Send('{ENTER}')
EndIf
;Let another thread have a turn
sleep(3)
WEnd
また、これは Python 内から直接可能です。詳細はhttp://www.parrisstudios.com/?p=308ですが、それでも autoit3 が必要です。
私はautoitでWebページと対話しようとしていましたが、愚かなjavascriptアラートがすべてを壊し続け、最終的にそれらを無効にする方法を見つけたので、ここに投稿しようと思いました:
#include <ie.au3>
$oIE = _IEAttach('https://www.site.com','URL')
$EventObject=ObjEvent($oIE.document,"IEEvent_")
Func IEEvent_onreadystatechange()
$readystate=$oIE.document.readystate
ConsoleWrite ($readystate & @CRLF )
if $readystate='interactive' then killalert()
EndFunc
while 1
sleep(100)
WEnd
func killalert()
Local $o_head = $oIE.document.all.tags("HEAD").Item(0)
Local $o_script = $oIE.document.createElement("script")
With $o_script
.language = "jscript"
.type = "text/javascript"
.text = 'function alert(message) {};'
EndWith
$o_head.appendChild($o_script)
EndFunc
基本的にこれが行うことは、ページの準備ができたときに autoit で関数が呼び出されることです。 alert() 関数を再定義して、何もしないようにします ([OK] をクリックしなければならないことを心配する警告ダイアログはありません)。私はこれをテストしましたが、動作します。
ページ内のフレームから呼び出される alert() 関数がある場合、メイン ドキュメントの代わりにフレームの onreadystatechange イベントと readystate プロパティを使用する必要があります。
アラート ボックスに問題がある場合は、プログラムで無効にするか、条件に基づいてオフにする別のモード (つまり、デバッグ モード) をコードで作成することをお勧めします。
マクロ記録プログラムは、思ったほどうまく動作しません。通常、マクロ記録プログラムは、マウス クリックの位置とキーを押すタイミングを記録します。優れたマクロ記録プログラムは、(通常は画像処理) および (まれに) コンピュータ ビジョン技術を使用します。これらの手法を使用するソリューションは、通常、非常に高価です。(シートあたり 5k-10k) [より良いバージョンの名前の 1 つを思い出せません。QuickTest かもしれませんが、HP によって買収された会社によって作成されました]