2011-12-27 16 views
12

Hoy he estado dando saltos por todo Internet, y después de leer sobre muchas soluciones, he decidido que escribir un contenedor de Chromium sería una experiencia de aprendizaje interesante; sin mencionar que valdría la pena para varios proyectos en los que estoy trabajando actualmente.Escribiendo un contenedor administrado para Chromium

Sé que ya hay algunos contenedores por ahí (awesomium, berkelium), sin mencionar algunos tutoriales básicos like this one, pero estoy buscando escribir mi propio contenedor.

Mi interés principal en hacer esto es que puedo crear y acceder a la estructura DOM generada por WebKit para usar en C#, tanto antes como después de que se haya ejecutado cualquier javascript del que depende el html. Sé que podría usar el HTMLAgilityPack y Majestic12 para el análisis de HTML, pero estoy buscando construir algo sobre un motor probado que sea rápido, eficiente y se desarrolle activamente en el futuro inmediato. WebKit es un motor de diseño desarrollado activamente integrado en algunos de los navegadores más populares, y V8 es un impresionante motor de JavaScript, de ahí el uso decidido de Chromium.

Al ver que no me importa presentar ningún contenido y en su lugar estoy buscando acceder a la estructura de la página web, creo que integrar WebKit en su totalidad podría ser excesivo. Incluso en los casos en que me gustaría que JavaScript modifique el DOM, aún no me sirve para representar los resultados.

En resumen:

Todo lo que realmente quiero de cromo es la capacidad de crear el DOM de una página web, y (opcionalmente) la capacidad de ejecutar dichas secuencias de comandos de la página usando impresionante motor V8 del cromo para manipular más el DOM. Sé que esto será una gran empresa, pero estoy interesado en ver lo que tienes que decir. En resumen, ¿alguien ha trabajado con WebKit y V8 (posiblemente a través de Chromium), que podría evaluar la viabilidad de esto y prestarme su experiencia (a través de recomendaciones sobre cómo abordar esto)? Sé que eventualmente podría determinar una forma apropiada de abordar esto, pero estoy buscando agilizar el proceso un poco. Los enlaces o tal vez un nivel relativamente corto y dulce de alto nivel "Así es como lo haría" son lo que estoy buscando (también conocido como no necesito nada demasiado terriblemente elegante).

Espero que lo que estoy pidiendo no sea demasiado superficial. Si le parece demasiado general y desea cerrar este tema, en lugar de hacerlo, deje un comentario y trataré de limitar el enfoque. Como acabo de decir, mi mente está dando saltos hoy ya que tengo un resfriado.

+3

Este realmente no es el lugar para contratar asistencia en algo como esto. Si tiene una pregunta, expande su capacidad para obtener una respuesta, actualmente la respuesta de esta pregunta es muy específica. –

+1

@Ramhound No estoy buscando a alguien que escriba esto para mí. Simplemente estoy buscando recomendaciones de alguien que tenga más experiencia trabajando con estos proyectos. Además, no estoy seguro de entender lo que está tratando de decir con 'Si tiene una pregunta, expande su capacidad para obtener una respuesta, actualmente la respuesta de esta pregunta es muy específica [sic] .' – JesseBuesking

+4

Está hablando de crear http://www.phantomjs.org/? –

Respuesta

0

Uso Selenium Webdriver con ChromeDriver para secuencias de comandos automatizadas, páginas web y pruebas de aceptación. Easy to set up, easy to use.

La idea es que puede usar esta interfaz existente, pero change the path to the Chrome executable with ChromeOptions.BinaryLocation. Intente apuntarlo a una de las compilaciones sin cabeza existentes de WebKit, como WebKitDriver; podría funcionar.

Nuestros objetivos pueden ser diferentes, pero yo también estaría interesado en una versión sin cabeza. Sería menos intrusivo durante las pruebas en mi máquina de desarrollo, y ya tomo capturas de pantalla automáticas cuando falla una prueba.

1

estoy en el mismo camino.Estoy mirando profundamente en QtWebKit y la implementación realizada en PhantomJs que es similar al Selenium, y funcionó como un encanto en mis pruebas.

Cuando utiliza QtWebKit, como su controlador para WebKit usted ll save time for next releases of it, because maintain a WebKit Port it no es tan fácil.

Cuestiones relacionadas