ejemplo - webbrowser.navigate c# example
Establecer el valor de un TextArea dentro de un control WebBrowser(C#/.NET) (2)
Estoy buscando establecer el valor de un TextArea usando .NET WebBrowser Control.
He podido establecer los valores de los cuadros de texto usando el siguiente código (reemplace "nombre de usuario" con el nombre del cuadro de texto):
webBrowser1.Document.All.GetElementsByName("username")[0].SetAttribute("Value", "SomeUser");
Intenté usar un código similar en un TextArea (usando GetElementById) y no recuerdo que los tipos de entrada de TextArea no contienen un atributo de "Valor". También intenté configurar InnerHtml e InnerText de TextArea, pero el compilador continúa lanzando errores de excepción de referencia nula o errores de indexación fuera de límites al intentar establecer el valor de la entrada de TextArea.
¿Alguien tiene alguna idea sobre cómo configurar el texto dentro de un área de texto usando el control WebBrowser? ¡Cualquier consejo sería muy apreciado!
Supongamos que tiene el siguiente HTML:
<html>
<body>
<textarea id=''foo''>Testing</textarea>
</body>
</html>
Puede establecer el texto en el área de textarea
esta manera:
HtmlElement textArea = webBrowser1.Document.All["foo"];
if (textArea != null)
{
textArea.InnerText = "This is a test";
}
Un par de puntos en caso de que no se haya dado cuenta de esto:
- GetElementById solo devolverá un elemento único o nulo, no es una colección.
- Se generarán errores de índice fuera de límites si intenta insertar elementos de una instancia del control WebBrowser en elementos de otra instancia del control WebBrowser.
- GetElementBy .. se puede ejecutar directamente desde la propiedad WebBrowser.Document , por lo que no es necesario acceder a la colección All [] .