我需要无外观的网络浏览器与某些网页进行交互(例如输入文字,点击某个按钮,然后阅读一些DIV
元素)。我怎样才能在WPF
中完成它?我尝试使用System.Windows.Controls.WebBrowser
,但显然必须将其与以下内容进行交互:
var b = new WebBrowser();
b.LoadCompleted += (sender, args) =>
{
// I never get here...
Trace.WriteLine(args.Content != null ? "Success" : "Failure");
};
b.Navigate("https://www.google.com");
如何以非直观方式使用它?还是有更好的选择?
答案 0 :(得分:1)
WPF WebBrowser
风格需要具有实时Win32窗口句柄的父窗口。相反,您可以使用WinForms WebBrowser
版本,该版本可以在没有父窗口的情况下存在。只需在项目中引用System.Windows.Forms.dll
程序集。在内部,任一版本都包装WebBrowser ActiveX控件。
我发布了a few examples如何做到这一点。请注意,大多数是控制台应用程序,因此它们创建一个辅助STA线程来运行WebBrowser
的消息循环。在WPF中,您可以在主UI线程上使用WinForms WebBrowser
。
答案 1 :(得分:0)
如果您不需要执行任何Java脚本,可以使用WebRequest
(MSDN页面底部有一个例子......)