2010-07-31 16 views
7

Estoy creando una aplicación que abre un sitio web en el control WebBrowser y luego pone texto en los campos y luego hace clic en los envíos en unos pocos botones uno tras otro.Automatización del sitio web usando C# y WebBrowser

Tener un vistazo a abajo el código ...

 
var doc = webBrowser1.Document.GetElementById("ddlOnBoro"); 
doc.SetAttribute("SelectedIndex", "3"); 
var temp = doc.InvokeMember("change"); 

doc = doc.Document.GetElementById("iddOnstreet_txTextBox"); 
doc.SetAttribute("value", "ASTOR PLACE"); 

var adoc = doc.Document.GetElementById("Button6"); 
var getCrossStreets = adoc.DomElement as mshtml.HTMLInputButtonElement; 
adoc.RaiseEvent("onclick"); 

Primero y 3 últimas líneas funcionan bien y aun media 2 funciona bien, pero cuando me RaiseEvent ("onclick") en la última línea de código, el el valor del cuadro de texto se pone en blanco antes de enviarlo, incluso lo he establecido en la 5ª línea de código.

El sitio web está integrado en ASP.NET y creo que esto es ViewState con el que está jugando.

¿Alguna idea?

+0

¿Por qué escribe esta aplicación? –

+0

¿Has considerado algo así como Watir? (http://watir.com/) – Graham

Respuesta

3

http://watin.org/ se basa en Watir y permite realizar pruebas unitarias de sitios web. También se puede usar para ingresar datos de formularios, extraer datos de sitios web, etc. Es perfecto para usar con C#. Por favor no use esto para fines nefastos.

Si está en el sitio web en IE, ¿se borrará el cuadro de texto al hacer clic en el botón? Si intentas replicar lo que tu programa intenta hacer a mano y no ocurre lo mismo, es posible que te falte algo. Por ejemplo, en las primeras tres líneas, llamas al evento "change" (que creo que es realmente "onchange") pero no lo haces para las 2 líneas siguientes. Con solo mirarlo, esa es la única diferencia entre tu código y hacerlo a mano.

1

Como referencia, verifique si el popular grabador de macros del navegador iMacros puede manejar este sitio web. Si es así, entonces sabe al menos que es factible.

+0

Llegué a saber que los campos se estaban restableciendo porque JavaScript estaba allí para hacerlo. Estaba siendo publicado por javascript allí. – Neutralizer

2

Consulte el siguiente artículo.

Proporciona un pequeño ejemplo sobre cómo usar WebBrowser para completar automáticamente el texto de búsqueda en Google. Comenzaría con eso y luego intentaré ingresar a su propio sitio con diferentes nombres de campo.

C# Auto click button and auto fill form

Cuestiones relacionadas