Wie kann ich Autoit schließen alle Javascript-Benachrichtigungen und Bestätigungen, die angezeigt werden können?

StackOverflow https://stackoverflow.com/questions/1709958

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.

War es 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top