¿Cómo puedo navegar por una página programáticamente?

c# html-agility-pack

Pregunta

He visto numerosos ejemplos sobre cómo obtener los contenidos de una URI. También usé mucho HTMLAgilityPack. Lo que quiero es crear un entorno de pruebas unitarias para los sitios web asp.

He visto BrowserSession y esta pregunta, pero aunque el proceso parece estar bien, no inician sesión en un sitio web. Probé numerosos sitios web muy conocidos.

¿Alguna idea sobre cómo navegar por código?

Respuesta popular

Parece que desea enviar un formulario en una página web y ver la respuesta HTML en el reverso de la página resultante.

Este método tomará una URL de destino del formulario y enviará una publicación con los argumentos con el nombre dado en el Diccionario de Parms.

He utilizado el método a continuación para realizar la autenticación de contraseña en una página web y ver la respuesta después de la autenticación. Deberá conocer la URL de destino y los campos del formulario que desea pasar en la solicitud.

private string SubmitRequest(string url, Dictionary<string, string> parms)
{
    var req = WebRequest.Create(url);
    req.Method = "POST";

    string parmsString = string.Join("&", parms.Select(p => string.Format("{0}={1}", p.Key, p.Value)));
    req.ContentLength = parmsString.Length;

    using (StreamWriter writer = new StreamWriter(req.GetRequestStream()))
    {
        writer.Write(parmsString);
        writer.Close();
    }

    var res = req.GetResponse();

    using (StreamReader reader = new StreamReader(res.GetResponseStream()))
    {
        string response = reader.ReadToEnd();
        reader.Close();
        return response;
    }
}

Si hay algo más específico que está buscando o esto no es lo que está buscando, por favor envíe un comentario.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow