【发布时间】:2017-04-02 05:38:40
【问题描述】:
如何创建执行此操作的方法:
登录网站,然后阅读(仅限会员)页面并返回 HTML。
我想出了这个(这显然行不通,因为我不知道如何让它返回页面内容)
public string LoginAndReadPage() {
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
wb.Navigate("hxxp://mysite.com/login");
}
private async void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (wb.Url.ToString().Contains("login"))
{
wb.Document.GetElementsByTagName("input").GetElementsByName("email")[0].SetAttribute("value", _login);
wb.Document.GetElementsByTagName("input").GetElementsByName("password")[0].SetAttribute("value", _password);
wb.Document.GetElementsByTagName("button")[0].InvokeMember("click");
}
else if (wb.Url.ToString().Contains("dashboard"))
{
return wb.DocumentText; // I want to return the content of mysite.com/dashboard
}
else
{
await Task.Delay(1000); //wait for 1 second just to let the WB catch up
wb.Navigate("hxxp://mysite.com/dashboard");
}
}
提前致谢
【问题讨论】:
-
wb.Document是 DOM 你还想要什么? -
@Edmad:我想退货,可能来自 LoginAndReadPage 方法
-
一定要使用浏览器控制吗?
-
@Niklas 没有,你有其他解决方案吗? (网页使用AngularJS加载内容和OAuth)
-
我对此并不熟悉,但请检查一下这是否有效? stackoverflow.com/questions/11118712/…
标签: c# .net webbrowser-control