Olá Ravi,
Interessante a sua pergunta. Eu fiz algo parecido ontem...
Você pode utilizar o controle WebBrowser que oferece métodos de navegação em páginas e a maioria das funcionalidades do Browser que utilizamos.
Para obter ou definir dados no HTML do navegador você pode usar uma lib chamada HTMLAgilityPack. Observe abaixo um exemplo de como percorrer os links de uma página
HtmlDocument document2 = new HtmlDocument();
document2.Load(@"C:\Temp\sample.txt")
HtmlNode[] nodes = document2.DocumentNode.SelectNodes("//a").ToArray();
foreach (HtmlNode item in nodes)
{
Console.WriteLine(item.InnerHtml);
}
Para executar algum comando, como o click de um botão, você pode usar o próprio WebBrowser. Veja um exemplo abaixo:
Web.Document.GetElementById("idBotaoSubmit").InvokeMember("click");