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

  • 相关阅读:
    HDU 5492 Find a path
    codeforce gym 100548H The Problem to Make You Happy
    Topcoder SRM 144 Lottery
    codeforce 165E Compatible Numbers
    codeforce gym 100307H Hack Protection
    区间DP总结
    UESTC 1321 柱爷的恋爱 (区间DP)
    HDU 4283 You Are the One (区间DP)
    HDU 2476 String painter (区间DP)
    UESTC 426 Food Delivery (区间DP)
  • 原文地址:https://www.cnblogs.com/soundcode/p/13042186.html
Copyright © 2011-2022 走看看