我正在 VB.net 中开发一个网络爬虫,并使用 System.Forms.WebBrowser 对象来处理使用 javascript 或表单帖子的网站上的导航,但我遇到了问题。当我向后导航 (WebBrowser.GoBack()) 到加载了表单帖子的页面时,该页面已过期,我必须刷新才能重新发送请求。当我调用刷新 (WebBrowser.Refresh()) 时,会弹出一个对话框进行确认。有没有办法可以在代码中绕过这个模态对话框?谢谢!
问问题
4414 次
3 回答
2
您可以传入 System.Windows.Forms.WebBrowserRefreshOption 类型的刷新选项。
有几个选项,这里描述:http:
//msdn.microsoft.com/en-us/library/system.windows.forms.webbrowserrefreshoption.aspx
这些选项似乎是您以编程方式控制 Web 浏览器刷新的唯一方法。
于 2009-04-20T17:42:35.437 回答
1
我有一个类似的问题,弹出一个带有 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
. 我很确定您没有收到脚本错误,但值得一试。
于 2009-07-20T13:42:44.783 回答
0
我在这里找到了解决此问题的解决方法/hack:http://www.experts-exchange.com/Programming/Languages/.NET/Q_25160302.html
基本上你这样做:
Browser.Refresh(WebBrowserRefreshOption.Completely);
SendKeys.Send("{Enter}");
该SendKeys.Send("{Enter}");
行向活动窗口发送一个 Enter 键,这是我们想要摆脱的模式对话框。
于 2011-10-20T12:52:39.427 回答