[英]WebBrowser.Refresh problem in VB.Net
我正在VB.net中使用WebCrawler,并使用System.Forms.WebBrowser对象来处理使用javascript或表单发布的网站上的导航,但是我遇到了问题。 当我向后导航(WebBrowser.GoBack())到已加载表单发布的页面时,该页面已过期,我必须刷新以重新发送请求。 当我调用刷新(WebBrowser.Refresh())时,将弹出一个对话框进行确认。 有什么办法可以解决代码中的模式对话框? 谢谢!
您可能可以传递System.Windows.Forms.WebBrowserRefreshOption类型的刷新选项。
这里有几个选项:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowserrefreshoption.aspx
这些选项似乎是您可以编程方式控制Web浏览器刷新的唯一方法。
我在弹出窗口中出现了类似的问题,并显示了JavaScript警告。 我设法使用window_error
事件抑制了它。
我将此行添加到browser_completed
事件处理程序中:
((WebBrowser)sender).Document.Window.Error +=
new HtmlElementErrorEventHandler(Window_Error);
这是我的window_error
事件处理程序:
void Window_Error(object sender, HtmlElementErrorEventArgs e)
{
e.Handled = true;
}
要考虑的另一种选择是this._browser.ScriptErrorsSuppressed
。 我很确定您没有遇到脚本错误,但是值得一试。
我在这里找到了解决此问题的解决方法/黑客: http : //www.experts-exchange.com/Programming/Languages/.NET/Q_25160302.html
基本上,您可以这样做:
Browser.Refresh(WebBrowserRefreshOption.Completely);
SendKeys.Send("{Enter}");
SendKeys.Send("{Enter}");
行将Enter键发送到活动窗口,这是我们要摆脱的模式对话框。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.