use*_*142 3 html frames cefsharp
pcpao.org/general.php?strap=152814186280001650
在尝试从该站点获取完整的HTML时,.GetSourceAsync和.ViewSource都只显示'frameset'HTML.使用ShowDevTools选项,完整的HTML数据包含在元素集合和Chrome-devtools的Sources中.
我在网页加载后运行这个,但它应该都在那里,因为它在开发工具中?
从导航网站获取完整的HTML,我缺少什么.我怀疑这与帧有关,但经过一个小时的谷歌搜索和阅读旧消息,我看到这只是切向提到.
的WinForms
package id="cef.redist.x64" version="3.2526.1362" targetFramework="net46"
package id="cef.redist.x86" version="3.2526.1362" targetFramework="net46"
package id="CefSharp.Common" version="47.0.3" targetFramework="net46"
package id="CefSharp.WinForms" version="47.0.3" targetFramework="net46"
Run Code Online (Sandbox Code Playgroud)
我有同样的问题试图点击和项目位于框架而不是主框架.使用你的答案中的例子,我写了以下扩展方法:
public static IFrame GetFrame(this ChromiumWebBrowser browser, string FrameName)
{
IFrame frame = null;
var identifiers = browser.GetBrowser().GetFrameIdentifiers();
foreach (var i in identifiers)
{
frame = browser.GetBrowser().GetFrame(i);
if (frame.Name == FrameName)
return frame;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
如果您的表单上有"使用"包含此方法的模块,您可以执行以下操作:
var frame = browser.GetFrame("nameofframe");
if (frame != null)
frame.EvaluateScriptAsync("document.getElementById('whateveridyouwanttoclick').click();");
Run Code Online (Sandbox Code Playgroud)
当然,在使用之前你需要确保页面加载完成,但我打算大量使用它.希望能帮助到你!
吉姆