5

È possibile fare in modo che lo script (phantomjs o casperjs) si arresti per input manuale (digitando da tastiera) prima di passare al passaggio successivo?Immissione manuale durante l'esecuzione di phantomjs casperjs

Ad esempio, lo script compilerà un modulo ed esporterà l'intero schermo come .png, quindi attenderà l'input dell'utente per compilare l'ultimo campo prima di fare clic su Invia. Captcha è una delle barriere richieste. Non voglio avere a che fare con l'interruttore/risolutore Captcha o qualcosa del genere poiché è una cosa sola per corsa.

Qualsiasi aiuto?

risposta

3

Non l'ho mai fatto, ma, so che lo script che scrivi che viene eseguito nel browser/fantasma, può inviare una richiesta Ajax ad un server web locale. C'è la tua comunicazione esterna.

->screenshot 
->send to local server 
->someones open web browser polls the server for new data entry jobs 
->human submits one 
->server receives submission 
->server routes the response back to that initial ajax request 
->that ajax request that got sent from phantomjs finally receives a response. 

Questo flusso di lavoro può essere fatto utilizzando qualsiasi tipo di comunicazione esterna possibile dal fantasma/Casper (io non sono solo familiarità con loro). Sono sicuro che ajax funziona, quindi l'ho usato come esempio.

+2

Ora la mia soluzione è utilizzare FileSystem e leggere un contenuto di file per la stringa captcha. Ma cerco di scoprire se c'è un modo migliore per farlo. Ajax mi sembra eccessivo. –

+1

hey @HP. Sono nella tua stessa situazione. Potete fornirci ulteriori informazioni sulla soluzione alternativa con FileSystem? Avete trovato un modo migliore per implementarlo? Grazie –

+1

L'uso di FS è un trucco molto brutto. Non lo consiglierei Fondamentalmente uso una specie di timer 'setTimeout' per aspettare un po 'prima di leggere un file. Quindi entro 20 secondi circa, ho rapidamente modificato il file di testo per fornire l'input. –

Problemi correlati