Sto familiarizzando con PhantomJS. Ma non riesco a ottenere una cosa. Ho una pagina con una semplice forma:Come inviare un modulo con PhantomJS?
<FORM action="save.php" enctype="multipart/form-data" method="GET" onSubmit="return doSubmit();">
<INPUT name="test_data" type="text">
<INPUT name="Submit" type="submit" value="Submit">
</FORM>
e save.php appena annota il valore test_data
così sto facendo questo:
page.evaluate(function() {
document.forms[0].test_data.value="555";
doSubmit();
});
Quando il rendering della pagina I vedi che il campo di testo è 555, ma il modulo non sta sottomettendo e save.php non ha annotato un valore di test_data. Quindi doSubmit()
non è in esecuzione, vero? doSubmit()
è un semplice passo di convalida e un invio dovrebbe caricare la pagina successiva.
Quindi la domanda è: come posso eseguire un codice javascript sulla pagina, utilizzando PhantomJS?
'funzione doSubmit() { \t \t \t se (document.forms [0] .test_data.value == "") \t {\t \t avviso \t ("Riempi il campo!"); \t \t return false; \t} \t \t return true; } 'Eccolo, mi dispiace ho dimenticato di postarlo nella mia domanda. Sta solo facendo la convalida. – user3416803
Oh, ora capisco. Quindi ho solo bisogno di fare clic sul pulsante di invio tramite JS? Comunque. Se ho bisogno di eseguire la funzione, funzionerà in questo modo o c'è un altro approccio? Scusa per essere zoppo. – user3416803
Possibile duplicato di [Come inviare un modulo utilizzando PhantomJS] (http://stackoverflow.com/questions/9246438/how-to-submit-a-form-using-phantomjs) –