Domanda

Sono test di selenio e ho un sacco di roba che accade al caricamento della pagina. Ho scoperto di AutoIt, e pensavo che potesse gestire tutte le questioni di dialogo javascript. Ero alla ricerca di tutto il web per alcuni script AutoIt in grado di gestire questo ...

Altre opzioni sarebbe utile, come pure!

Non necessariamente bisogno di tutto il codice, ma un certo punto nella giusta direzione, sarebbe utile.

È stato utile?

Soluzione

Va bene così questa soluzione funziona per me ... sono stato in grado di chiudere 2 finestre qui. Anche io sarò in grado di gestire i popup in base al loro nome che è fresco. Si corre sempre in background dopo aver lauched il copione. Quando voglio che finisca semplicemente vicino autoit dal task manager o dalla zona barra delle applicazioni a destra.

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

Anche questo è possibile direttamente da pitone, i dettagli: http://www.parrisstudios.com /? p = 308 , ma è ancora necessario autoit3.

Altri suggerimenti

Se si hanno problemi con le caselle di avviso si potrebbe desiderare di disattivarli a livello di codice o di creare una modalità separata nel codice che li spegne base a una condizione (vale a dire la modalità di debug).

programmi di registrazione macro non funzionano così come si potrebbe pensare. Tipicamente macro-registrazione posizioni programmi record di clic del mouse e tempistica di tasti premuti. I programmi di macro-registrazione migliore utilizzo (in genere di elaborazione delle immagini) e (raramente) tecniche di computer vision. Le soluzioni che utilizzano queste tecniche sono in genere molto costoso. (5K-10k per posto) [non riesco a ricordare uno dei nomi delle versioni migliori Potrebbe essere QuickTest , ma è stato fatto da una società che è stata acquistata da HP]

Stavo cercando di interagire con una pagina web con AutoIt e gli allarmi javascript stupidi ma si rompevano continuamente tutto e ho finalmente capito come disattivare in modo ho pensato di postare qui:

#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

In pratica ciò non fa altro che hanno una funzione get chiamato autoit quando la pagina di stato pronto = 'interattivo' (a quanto pare questo è dopo la maggior parte della pagina è caricata ma prima che "corre" qualsiasi cosa io credo) che inserisce alcuni javascript in la pagina per ridefinire la funzione di allarme () in modo che non si fa nulla (nessuna finestra di avviso di preoccuparsi di dover fare clic su OK). Ho testato questa e funziona.

Se avete la funzione di allarme () di essere chiamato da una cornice all'interno della pagina, allora si dovrà utilizzare l'evento onreadystatechange e la proprietà readyState della cornice invece del documento principale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top