Domanda

Così ho scritto uno script in PHP che richiede che JavaScript sia eseguito con esso. Ho avuto difficoltà a trovare la soluzione su come eseguire JavaScript con PHP allo stesso tempo usando uno strumento Linux per renderlo automatico (poiché eseguirlo nel mio browser non è una scelta, ho bisogno che sia un crontab ). L'uso del comando "PHP" non è una scelta poiché non esegue JavaScript. Quindi ho trovato una soluzione, era lince.

Quindi ecco il mio problema: per qualche motivo, il JavaScript funziona bene nel mio browser, ma non in Lynx. Usando Lynx La pagina si carica solo senza alcun coinvolgimento di JavaScript. C'è un modo per eseguire il debug di JavaScript in Lynx, un po 'di ciò che Google Chrome ha dove puoi vedere cosa sta succedendo dalla console, quindi posso scoprire cosa sta causando la sceneggiatura non eseguita in Lynx?

Modificare:

Quindi a quanto pare Lynx non supporta JavaScript. In tal caso, la mia domanda è: cosa fa? Devo eseguire questo script come farebbe un browser, ma dal prompt dei comandi Linux. E se il sistema operativo è importante in questo caso, sto eseguendo l'ultimo Ubuntu.

È stato utile?

Soluzione

Lynx non supporta JavaScript.

Aggiornamento 1

Sulla base del tuo riepilogo di ciò che stai cercando di fare (accedi a un sito che richiede JavaScript per la crittografia della password) ti consiglio vivamente di guardare l'utilizzo Selenio o un altro pacchetto di automazione del browser. Anche se si ottiene l'invio della password funzionante correttamente senza un tale livello, il sito probabilmente avrà altri problemi se si utilizza un browser minimalista come Lynx.

Altri suggerimenti

Lynx non supporta JavaScript, ma il browser di testo alternativo Elink fa, basato su Spidermonkey. È un po 'sperimentale però; vedere il Manuale su come compilarlo.

Inoltre, sono davvero perplesso su ciò che stai cercando di realizzare qui ...

Quello di cui hai bisogno è chiamato a Browser senza testa. Per esempio Phantomjs è uno di questi. Penso che sia il più popolare.

Se vuoi solo eseguire JavaScript Dalla riga di comando ti consiglierei qualcosa di simile Nodejs o Otto. Hanno un'impronta di prestazioni molto più piccola come un intero browser senza testa.

Se hai bisogno di più di un semplice JavaScript, ad esempio il DOM o giù di lì, dovresti provare un browser senza testa (Cromo, Phantomjs) come suggerito da altri.

Se non hai solo bisogno di un browser, ma vuoi farlo Test automatizzati Con quel browser, Selenio è ancora la strada da percorrere.

Dipende davvero dal tuo caso d'uso di quanto hai bisogno.

Aggiornare: Da qualche mese è possibile utilizzare Chrome come browser senza testa Ora (anche Firefox è in arrivo).

Il selenio è la strada da percorrere, ma come noti, ha bisogno di un display. Che quindi deve essere lanciato e Yada Yada Yada, ora hai una configurazione piuttosto complessa in corso !!

Per fortuna, c'è ancora un altro modo per automatizzare tutto ciò, ed è attraverso un framework di automazione. Consiglio Jenkins. Ha già un componente aggiuntivo per avviare un server X.

Quindi la pipeline approssimativa è la seguente:

  • Dimentica Crrontab
  • Imposta un server Ubuntu Jenkins (con X installato)
  • Installa il componente aggiuntivo di Jenkins xvncserver (?) - Penso che sia quello che si chiama. Comunque questo lancerà automaticamente un XHost per te.
  • Scrivi sceneggiature del webdriver Selenium che vanno nella posizione in questione (il più semplice * è usare il selenio IDE)
  • Chiedi a Selenium IDE di ottenere gli script del WebDriver in qualsiasi formato, quindi far funzionare Jenkins. Uso personalmente il formato Java, quindi uso Ant per costruirli.

Come puoi immaginare, questa è piuttosto una configurazione, ma tecnicamente farà ciò che stai chiedendo. Mi dispiace che non sia semplice come una piping wget per Lynx.

Un altro modo per andare è solo riscrivere la tua pagina web per fare cose senza assumere un browser, ad esempio, prendi un parametro GET che lo mette in "modalità automatica" e quindi presume che sia corretto da un cron e fare la felicità attraverso un circuito più corto .

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