ChromiumWebBrowser 获取页面所有元素
时间: 2024-06-07 21:11:51 浏览: 255
你可以使用ChromiumWebBrowser的EvaluateScriptAsync方法来执行JavaScript代码,从而获取页面中的所有元素。下面是一个示例代码:
```csharp
using System;
using System.Threading.Tasks;
using CefSharp;
using CefSharp.WinForms;
namespace ChromiumDemo
{
public partial class Form1 : Form
{
private ChromiumWebBrowser browser;
public Form1()
{
InitializeComponent();
InitializeBrowser();
}
private void InitializeBrowser()
{
Cef.Initialize(new CefSettings());
browser = new ChromiumWebBrowser("https://www.google.com");
browser.Dock = DockStyle.Fill;
browser.FrameLoadEnd += Browser_FrameLoadEnd;
this.Controls.Add(browser);
}
private async void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
// wait until the page is fully loaded
if (e.Frame.IsMain)
{
await Task.Delay(1000);
var script = "Array.from(document.getElementsByTagName('*')).map(function(e) { return e.nodeName; });";
var result = await browser.EvaluateScriptAsync(script);
if (result.Result != null)
{
var elements = (object[])result.Result;
foreach (var element in elements)
{
Console.WriteLine(element.ToString());
}
}
}
}
}
}
```
这段代码会在ChromiumWebBrowser加载完成之后,执行一个JavaScript脚本,把页面中所有元素的标签名打印出来。你可以根据自己的需要修改脚本,获取其他信息。
阅读全文