¿Cómo obtener el valor real de JavaScript en onclick desde el control del navegador web?

Estoy buscando una forma de obtener el código JavaScript definido dentro de onclick. Estoy usando .NET 2.0 C # Visual Studio 2005.

Ejemplo

<span id="foo" onclick+"window.location.href='someURL'>click here</span>

Mi objetivo es obtener la cadena "window.location.href = 'someURL'".

Guión

Un usuario hace clic en el elemento de la página web, la etiqueta que se muestra arriba, por ejemplo, dentro del control WebBrowser. Luego, la etiqueta en la que se hace clic se remite a HtmlElement object.

En el control WebBrowser, llamo aHtmlElement object's getAttribute("onclick"), solo me da "System .__ ComObject ".

He buscado cómo lidiar con eso, luego descubrí que se puede lanzar y luego obtener el valor.

if (tag.GetAttribute("onclick").Equals("System.__ComObject"))
{
    Console.WriteLine("dom elem  >>>>>>>>>>> " + tag.DomElement.ToString());
    mshtml.HTMLSpanElementClass span = (mshtml.HTMLSpanElementClass)tag.DomElement;

    Console.WriteLine("js value ===>" + span.onclick);
}

Salida

dom elem  >>>>>>>>>>> mshtml.HTMLSpanElementClass
js value ===> System.__ComObject

Como se muestra, span.onclick todavía me da Sistema .__ ComObject, ¿qué estoy haciendo mal?

In ¿Por qué el método GetAttribute () de HtmlElement devuelve "mshtml.HTMLInputElementClass" en lugar del valor del atributo? este tipo dijo que funcionó en su caso, y lo seguí, pero el mío no funciona ...

ACTUALIZA

Investigación, investigación .....

Puedo agregar el VisualBasic.dll de referencia a mi proyecto C # y luego llamar al método para averiguar quién es este sistema .__ ComObject realmente es.

Console.WriteLine(Microsoft.VisualBasic.Information.TypeName(span.onclick));

Salida

JScriptTypeInfo

Parece que este es un tipo JScript ... ¿cómo puedo acceder a este objeto?

Mas detall

La descripción anterior se basa en mi proyecto actual. El proyecto es crear algo como Selenium IDE. Utiliza el control WebBrowser en su lugar.

Selenium IDE crea 3 cosas diferentes para registrar un elemento en el documento web.

1. actionType
2. xpath
3. value

Por ejemplo

type, //input[@id=foo], "hello world"
clickAndWait, //link=login, ""

Selenium IDE reconoce la carga de la página para que cambie actionType entre"click" y"clickAndWait". Mi caso, quiero hacerlo simple.

Si hago clic en el elemento y si esanchor tag o tiene JavaScript de carga de página comoonclick=window.location.href='blah' entonces quiero establecer el tipo de acción en"clickAndWait".

Respuestas a la pregunta(6)

Su respuesta a la pregunta