acceder a elementos cargados dinámicamente en phantomjs

Estoy enviando un evento de página:

page.sendEvent('click', 650, 430);

Esto hace clic en un enlace que carga dinámicamente un elemento sobre ajax. ¿Es demasiado tarde para acceder a este elemento cargado dinámicamente a través de page.evaluate? Parece que no puedo devolver nada en absoluto en nada creado dinámicamente en la página.

preguntado el 12 de junio de 12 a las 16:06

2 Respuestas

Hasta ahora, la forma dinámica más simple es capturar mensajes de la consola, como se describe aquí. http://code.google.com/p/phantomjs/wiki/Interface#Callbacks

page.onConsoleMessage = function(msg) {
    console.log(msg);
};

En caso de que desee enviar algunos datos binarios, le recomendaría utilizar algún tipo de tubería mediante la inyección de un script personalizado en la página web.

Respondido el 17 de junio de 12 a las 22:06

¿Por qué no usas window.setTimeout y tomar una instantánea usando page.render? Entonces su código cambiaría a:

window.setTimeout(function() {
   page.sendEvent('click', 650, 430);
}, 5000);
window.setTimeout(function() {
   page.render('foo.png');
});

El tiempo de espera le dará a la llamada ajax la oportunidad de completarse. El renderizado le permitirá ver cómo se supone que debe verse la página cuando finaliza la llamada ajax.

Respondido 11 Oct 12, 07:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.