Wie kann ich Autoit schließen alle Javascript-Benachrichtigungen und Bestätigungen, die angezeigt werden können?
-
19-09-2019 - |
Frage
Ich teste in Selen und ich habe ein paar Sachen, die beim Laden der Seite passiert. Ich fand heraus, über autoit, und ich dachte, dass es alle Javascript Dialoge Probleme bewältigen kann. Ich war rund um das Web für einige autoit Skript zu suchen, die damit umgehen könnte ...
Andere Optionen wären auch hilfreich sein!
ich nicht unbedingt brauche alle Codes, aber irgendwann in der richtigen Richtung wäre hilfreich.
Lösung
In Ordnung so dass diese Lösung funktioniert für mich ... Ich konnte hier 2 Fenster schließen. Auch kann ich Pop-ups zu handhaben, basierend auf ihren Namen, die kühl ist. Es läuft immer im Hintergrund, nachdem ich das Drehbuch lauched haben. Wenn ich möchte es auf der rechten Seite habe ich einfach schließen autoit von Task-Manager oder aus der Taskleiste Bereich beenden.
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
Auch dies ist möglich, direkt aus Python, Details: http://www.parrisstudios.com /? p = 308 , aber Sie müssen noch autoit3.
Andere Tipps
Wenn Sie Probleme mit Alertbox haben möchten Sie vielleicht sie programmatisch deaktivieren oder einen separaten Modus in Ihrem Code erstellen, die sie ab, basierend auf einem Zustand drehen würde (das heißt Debug-Modus).
Makro-Aufnahmeprogramme funktionieren nicht so gut wie Sie vielleicht denken. Typischerweise Rekord Makro-Aufnahmeprogramme Stellen Mausklicks und der Zeitpunkt der Tastendrücke. Die besseren Makroaufnahmeprogramme verwenden (in der Regel Bildverarbeitung) und (selten) Computer-Vision-Techniken. Die Lösungen, die diese Techniken verwenden, sind in der Regel sehr teuer. (5k-10k pro Sitz) [Ich kann nicht einen der Namen der besseren Versionen erinnert sein könnte Quick , aber es wurde von einer Firma hergestellt, die von HP wurde aufgekauft]
Ich habe versucht, mit einer Webseite mit autoit und den dummen Javascript Warnungen breche immer alles zu interagieren und ich endlich herausgefunden, wie sie zu deaktivieren, so dachte ich, ich würde es hier posten:
#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
Im Grunde das, was tut, ist eine Funktion in autoit aufgerufen werden, wenn die Seite fertig status = ‚interaktive‘ (anscheinend ist, nachdem die meisten der Seite geladen werden, aber bevor es „läuft“ etwas, was ich denke), das fügt einige Javascript in die Seite mit der alert () Funktion neu zu definieren, so dass es nichts tut (kein Alarm Dialog darüber, dass sie klicken sie auf oK auf Sorgen zu machen). Ich habe dies getestet und es funktioniert.
Wenn Sie die alert () Funktion von einem Rahmen innerhalb der Seite aufgerufen wird, dann werden Sie das onreadystatechange Ereignis und die Readystate-Eigenschaft des Rahmens anstelle des Hauptdokument verwenden.