YSF*_*BDY 3 c# webbrowser-control chromium-embedded cefsharp
我在 WinForm 项目中使用 CefSharp v55.0。页面加载后,我想从中获取 HTML 代码。为此,我正在使用它:
private void WebBrowserFrameLoadEnded(object sender, FrameLoadEndEventArgs e)
{
if (e.Frame.IsMain)
{
test.ViewSource();
test.GetSourceAsync().ContinueWith(code =>
{
var html = code.Result;
});
}
}
Run Code Online (Sandbox Code Playgroud)
对于交叉检查,我还调用了 test.ViewSource() 方法,以查看 GetSourceAsync 方法是否正在获取整个代码。
不幸的是,代码是不同的。ViewSource 正在获取整个代码,但 GetSourceAsync 没有通过页面中生成的 javascript 获取代码。
请指导我获取页面源代码的方法,例如ViewSource,或者告诉我如何捕获此ViewSource方法的临时文件。
干杯。
小智 6
试试这个,它对我有用:
public void showSource() // <<<<<<<<<<<<<<<<<<<<<<<<<< Call this function
{
Task ts = getSource();
}
private async Task getSource()
{
try
{
//
string source = await chromeBrowser.GetBrowser().MainFrame.GetSourceAsync();
//
string f = Application.StartupPath + "\\currentSource.txt";
//
StreamWriter wr = new StreamWriter(f, false, System.Text.Encoding.Default);
wr.Write(source);
wr.Close();
//
System.Diagnostics.Process.Start(f);
//
}
catch (Exception)
{
//Error !
}
}
Run Code Online (Sandbox Code Playgroud)