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);
————————————————

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值