Я пытался взаимодействовать с веб-страницей с помощью autoit, и глупые предупреждения 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, когда состояние готовности страницы = «интерактивный» (очевидно, это происходит после того, как большая часть страницы загружена, но до того, как она «запускает» все, что я думаю), которая вставляет некоторый JavaScript в страница для переопределения функции alert (), чтобы она ничего не делала (нет диалогового окна с предупреждением о необходимости нажатия кнопки «ОК»). Я проверил это, и это работает.
Если у вас есть функция alert (), вызываемая из фрейма внутри страницы, вам придется использовать событие onreadystatechange и свойство readystate фрейма вместо основного документа.