Come posso navigare una pagina a livello di programmazione?

c# html-agility-pack

Domanda

Ho visto numerosi esempi su come ottenere il contenuto di un URI. Ho anche usato HTMLAgilityPack molto. Quello che voglio è creare un ambiente di test unitario per i siti Web asp.

Ho visto la BrowserSession e questa domanda, ma sebbene il processo sembri valido , non effettuano il login in un sito web. Ho provato numerosi siti Web noti.

Qualche idea su come navigare attraverso il codice?

Risposta popolare

Sembra che tu voglia inviare un modulo su una pagina Web e visualizzare il codice HTML della risposta della pagina risultante.

Questo metodo assumerà un URL di destinazione del modulo e invierà un post con gli argomenti specificati nel dizionario parms.

Ho utilizzato il metodo seguente per eseguire l'autenticazione della password su una pagina Web e visualizzare la risposta dopo l'autenticazione. Dovrai conoscere l'Url di destinazione e i campi del modulo che desideri passare nella richiesta.

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;
    }
}

Se c'è qualcosa di più specifico che vuoi o non è quello che stai cercando, per favore pubblica un commento.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché