zoukankan      html  css  js  c++  java
  • 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);


  • 相关阅读:
    有关同时包含<winsock2.h>与<windows.h>头文件的问题
    如何使用微软提供的TCHAR.H头文件?
    下面的程序在VC6通过,在VS2008不能,错误信息都是“不能将参数……从const char[]转换为LPCWSTR”
    Android开发学习日志(四)
    爬虫开发(一)
    java集合源码详解
    Paxos算法
    linux 常用命令
    Bitmap的原理和应用
    Flink Checkpoint 问题排查实用指南
  • 原文地址:https://www.cnblogs.com/yidanda888/p/12931543.html
Copyright © 2011-2022 走看看