2017-04-17 521 views
0

我在我的WinForm项目中使用了CefSharp v55.0。页面加载后,我想从中获取HTML代码。而对于我使用这个:从Cefsharp浏览器获取HTML

private void WebBrowserFrameLoadEnded(object sender, FrameLoadEndEventArgs e) 
{ 
    if (e.Frame.IsMain) 
    { 
     test.ViewSource(); 
     test.GetSourceAsync().ContinueWith(code => 
     { 
      var html = code.Result; 
     }); 
    } 
} 

和交叉检验,我也呼吁test.ViewSource()方法,一看就知道,如果GetSourceAsync方法越来越整个代码或没有。

不幸的是,代码是不同的。 ViewSource获取整个代码,但GetSourceAsync没有通过页面中生成的JavaScript获取代码。

Plase引导我一种获得像ViewSource这样的页面源代码的方法,或者告诉我如何捕获这个ViewSource方法的临时文件。

干杯。

+1

见https://github.com/cefsharp/CefSharp/issues/1864 – amaitland

回答

0

试试这个,它为我工作:

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 ! 
     } 
    }