Domanda

Ho un compito di inserimento dati brutta che ha bisogno di automazione. Il problema è che alcuni dei processi si basano su servizi Ajax web-based che non hanno API.

Il problema con iMacros (o qualsiasi altro strumento di automazione) è che ogni volta che le inietta macro JavaScript in una pagina (modifica callback ajax e di fare tutto ciò che deve fare), lo script bambino non ha modo di comunicare lo script genitore che la attività è pronta, e lasciarlo continuare il processo in un unico filo. Se io uso l'istruzione WAIT, l'affidabilità sarà pari a zero e non c'è modo per implementare sicurezze.

Ho provato tutto quello che riuscivo a pensare, tra cui Chrome Extensions, abbassando di sicurezza del browser XSS e anche replicare le richieste attraverso Curl & PHP. Ognuno di questi ha i suoi limiti.

Sono aperto a qualsiasi soluzione che:

  • può attendere per una pagina alla fine di carico (eventi onload)
  • può modificare il javascript quella pagina particolare, interagiscono con Vars, ecc.
  • può notificare al chiamante genitore che sotto-attività sono completate e fuoco gli eventi adeguati
  • supporta Flash

Qualsiasi alternativa e aiuto molto apprezzato.

È stato utile?

Soluzione

Ecco un buon articolo che è selenio centric spiegare modi diversi di attendere ajax richieste a finitura: http: / /agilesoftwaretesting.com/?p=111 .

Questo è molto più pulito che cercare di modificare il JS esistente. Una qualsiasi delle seguenti può essere chiamato da JavaScript direttamente, in modo finché vostri supporti framework per l'automazione di chiamata javascript (che Selenio / WebDriver fa), allora basta chiamare queste funzioni, a seconda di quale ajax biblioteche vostro sito web utilizza:

jQuery: “jQuery.active”

Prototipo: “Ajax.activeRequestCount”

Dojo: “dojo.io.XMLHTTPTransport.inFlight.length”

Basta controllare per assicurarsi che il valore è 0 e poi continuare.

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