2011-05-18 18 views
6

Estoy escribiendo un programa para validar páginas web en un servidor remoto. Utiliza selenio RC para ejecutar Firefox con una batería de pruebas, por lo que puedo invocar javascript arbitrario. Cuando hay una falla, me gustaría registrar el HTML generado de la página. Ahora, acceder al HTML DOM es fácil, pero estoy teniendo problemas para encontrar la forma de llegar a la fuente. Gracias.obteniendo la fuente sin procesar de Firefox con javascript

Debo reiterar que no estoy buscando el DOM, sino el código fuente original no modificado. Como se puede ver a través de clic derecho -> ver el origen de la página. Específicamente si <Html> <body> <table> <tr> <td> fear the table data </td> </table>

es el HTML real. Las llamadas a document.documentElement.outerHTML || document.documentElement.innerHTML y selenium.getHTMLSource() resultarán en <head> </head><body> <table> <tbody><tr> <td> fear the table data </td> </tr></tbody></table> </body>

+0

Actualmente estoy haciendo esto a través de una solicitud adicional utilizando la biblioteca http, por lo que cada página en realidad fue dos veces: con selenio y sin. También a menudo me doy cuenta de que ver la fuente de la página en Firefox viene con un retraso, obviamente, el navegador hace lo mismo bajo el capó. –

Respuesta

2

solicitud XHR la misma página de la fuente, y sólo comprobar document.documentElement.outerHTML || document.documentElement.innerHTML para la fuente del estado actual.

+1

Sin embargo. Estoy buscando el código fuente original html sin modificar. – Mark

+0

Dije "XHR solicita la misma página para la fuente". –

+0

Es posible que (más que probable) falte algo, pero si la página es dinámica, no necesariamente volverá a cargar el mismo html que provocó un error. – Mark

-1

Ha intentado algo tan simple como

document.documentElement.innerHTML; 
+0

que obtiene el DOM al menos en Firefox. – Mark

-1

Puesto que usted está usando también el selenio, puede utilizar selenium.getHTMLSource(). Esto devolverá todo el contenido de la página fuente.

+1

Eso es lo que había asumido antes de las pruebas. La llamada en realidad obtiene una versión html del DOM probablemente a través de document.documentElement.innerHTML; llamada. – Mark

Cuestiones relacionadas