cefSharp通过js操控页面,含跨域操控
基本操控
cefSharp可以让页面运行指定的js代码,所以这就为操控页面提供了方法,js能做的所有操控DOM元素的方法,cefSharp都可以做了
在67版本中对页面使用js的方法很简单,一句话:
browser.ExecuteJavaScriptAsync(script);//script是String格式的js代码
1
##获取Js返回的结果
如果要获取到js返回的结果,则需要麻烦一点
String script =
@"(function() {
var tags = document.getElementsByTagName('span');
var result=false;
for(var i in tags){
if (tags[i].nodeType == 1){
if (tags[i].getAttribute('class') == 'example'){
result=true;
}
}
}
return result;
})()";
browser.EvaluateScriptAsync(script).ContinueWith(x =>
{
var response = x.Result;
if (response.Success && response.Result != null)
{
bool result = (bool)response.Result;
if (result)
{
//TODO
}
else
{
//TODO
}
}
});
注意:花括号中间的代码是异步执行的
上面的例子的作用是在在页面中寻找一个class为example的span元素,找到返回true,找不到返回false;
跨域操控
跨域操控的方式很简单,读取browser里面有几个框架,在框架下面执行指定JS代码就好了
List<long> idList = browser.GetBrowser().GetFrameIdentifiers();//idList里面装了页面所有iframe的数据
//取出第2个iframe
IFrame frame = browser.GetBrowser().GetFrame(idList[2]);
//执行js代码
frame.ExecuteJavaScriptAsync(script);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现