.Net Version 4.5.2
当加载返回302的页面时,浏览器控件会加载重定向的URL,大概是正确的。当您在Fiddler中检查调用结果时,将从服务器返回整个正确的页面。
现在,页面永远不会“完成”很长一段时间,但是会进入“互动”状态,在那里你应该可以与之交互,不是吗?
当我查看WebBrowser的非空文档时,它没有内容,因此您无法访问Body或任何元素。
结果被编码 - gzip。你必须在Fiddler解码才能看到它。
如何让返回的HTML在Document属性中可用?
using (browser = new WebBrowser()) {
browser.ClientSize = new Size(800, 600);
browser.ScrollBarsEnabled = false;
browser.ScriptErrorsSuppressed = true;
System.Windows.Forms.HtmlDocument doc = null;
browser.Navigate(_url);
// Wait for control to load page
while (browser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
if (browser.ReadyState == WebBrowserReadyState.Interactive && browser.Document != null)
{
// give some redering time..
Thread.CurrentThread.Join(500);
Application.DoEvents();
doc = browser.Document;
break;
}
}
var elements = browser.Document.GetElementsByTagName("INPUT");
foreach (HtmlElement element in elements)
{
if (element.Name.ToLower().Contains("theInputFieldName"))
{
element.InnerText = NewFieldContentsVariable;
}
//to get the text use : string value = element.GetAttribute("value");
//to set the text use : elemet.InnerText = "something";
}
...