2010-03-18 15 views
5

Uso del control webBrowser en un winForm. pero cuando la página web es actualizada por Ajax o en un marco, no puedo usar webBrowser1.document.getElementById, etc. para encontrar que htmlElement. El elemento tampoco se mostrará en el View->Source code en IE.El control webBrowser no puede encontrar htmlElement después de la actualización de la página web Ajax o en el marco

El propósito de untimate es encontrar que htmlElement y simular un clic u otra función como invokeMember("staff").

Respuesta

1

El objeto del documento WebBrowser realmente representa una vista en vivo del DOM, por lo que puede haber algún otro motivo por el que no pueda encontrarlo. Sin embargo, las actualizaciones de DOM no se representarán en Ver -> Fuente. Deberías usar las herramientas de desarrollador de IE8 que te mostrarán una vista en vivo del DOM y tal vez veas algo así como una identificación incorrecta/duplicada o algo así.

0

Te estoy adivinando ya han resuelto este problema por su cuenta, pero si no es así, consulte a mi pregunta aquí: WebBrowser Control and GetElement by ID

Esencialmente, si lo hace algo para el control WebBrowser (es decir, , agregue algún miembro al DOM) lo hará de forma asíncrona. Es decir, lo hace en otro hilo, de esa manera evita bloquear el hilo de llamada cuando el WebBrowser está trabajando. El problema es que si modifica programáticamente algo con un comando, tendrá que esperar hasta que ese comando termine de cargar sus cambios hasta que pueda trabajar con el resultado.

Consulte aquí mi pregunta para ver un ejemplo de código de lo que estaba haciendo. Espero que alguien pueda encontrar mis ensayos anteriores útiles.

Cuestiones relacionadas