Pregunta

Así que escribí un script en PHP que requiere que JavaScript se ejecute con él. He tenido dificultades para encontrar la solución sobre cómo ejecutar el JavaScript con PHP al mismo tiempo usando una herramienta de Linux para hacerlo automático (ya que ejecutarlo en mi navegador no es una opción, necesito que sea un crontab ). Usar el comando "PHP" tampoco es una opción, ya que no ejecuta JavaScript. Entonces encontré una solución, era Lynx.

Así que aquí está mi problema: por alguna razón, el JavaScript se ejecuta en mi navegador bien, pero no en Lynx. Usando Lynx, la página solo se carga sin ninguna participación de JavaScript. ¿Hay alguna manera de depurar JavaScript en Lynx, algo así que Google Chrome tiene donde puede ver lo que está sucediendo de la consola, para que pueda descubrir qué está causando que el script no se ejecute en Lynx?

Editar:

Así que aparentemente Lynx no es compatible con JavaScript. En ese caso, mi pregunta es, ¿qué hace? Necesito ejecutar este script como lo haría un navegador, pero desde el símbolo del sistema Linux. Y si el sistema operativo importa en este caso, estoy ejecutando los últimos Ubuntu.

¿Fue útil?

Solución

Lynx no es compatible con JavaScript.

Actualización 1

Según su resumen de lo que está tratando de hacer (inicie sesión en un sitio que requiera JavaScript para el cifrado de contraseña), le recomiendo que busque usar Selenio u otro paquete de automatización del navegador. Incluso si hace que el envío de contraseña funcione correctamente sin tal capa, el sitio probablemente tendrá otros problemas si usa un navegador minimalista como Lynx.

Otros consejos

Lynx no admite JavaScript, sino el navegador de texto alternativo Elinks lo hace, basado en Spidermonkey. Sin embargo, es algo experimental; ver el manual Sobre cómo compilarlo.

Además, estoy realmente desconcertado sobre lo que estás tratando de lograr aquí ...

Lo que necesitas se llama Navegador sin cabeza. Por ejemplo Fantomjs es uno de ellos. Creo que es el más popular.

Si solo quieres Ejecutar JavaScript Desde la línea de comando te aconsejaría algo como nodejs o otón. Tienen una huella de rendimiento mucho más pequeña como un navegador sin cabeza.

Si necesita más que simplemente JavaScript, por ejemplo, el DOM más o menos, debe probar un navegador sin cabeza (Cromo, Fantomjs) como lo sugieren otros.

Si no solo necesitas un navegador, sino que quieres hacer prueba automatizada con ese navegador Selenio sigue siendo el camino a seguir.

Realmente depende de su caso de uso de cuánto necesite.

Actualizar: Dado que unos meses es posible usar Chrome como navegador sin cabeza Ahora (Firefox también está en camino).

Selenium es el camino a seguir, pero cuando se da cuenta, necesita una pantalla. ¡Lo que luego debe lanzarse, y yada yada yada, ahora tienes una configuración bastante compleja!

Afortunadamente, hay aún otra forma de automatizar todo eso, y es a través de un marco de automatización. Recomiendo a Jenkins. Ya tiene un complemento para iniciar un servidor X.

Entonces, la tubería aproximada es la siguiente:

  • Olvídate de Crontab
  • Configurar un servidor Jenkins Ubuntu (con X instalado)
  • Instale el complemento Jenkins XVNCServer (?). Creo que así se llama. De todos modos, esto lanzará un XHost para usted automáticamente.
  • Escriba los scripts de Selenium WebDriver que van a la ubicación en cuestión (más fácil * es usar el IDE de Selenium)
  • Haga que Selenium IDE salga de los scripts de WebDriver a cualquier formato, luego haga que Jenkins lo ejecute. Yo personalmente uso el formato Java, luego uso hormiga para construirlos.

Como puedes imaginar, esta es una gran configuración, pero técnicamente hará lo que estás pidiendo. Lo siento, no es tan simple como tubería a Lynx.

Otra forma de hacerlo es reescribir su página web para hacer cosas sin asumir que un navegador, por ejemplo, tome un parámetro Get que lo ponga en "modo automático" y luego asumirá que se ejecuta desde un cron y hará su felicidad a través de un circuito más corto .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top