zoukankan      html  css  js  c++  java
  • Delphi中Chrome Chromium、Cef3学习笔记(四)

    一、遍历网页元素并点击JS:

    转载请注明出处,原文地址:
    http://blog.csdn.net/xtfnpgy/article/details/48155323

    1.遍历所有元素

    var eles=document.all;
    for(var i=0;i<eles.length;i++){var a;
           var d=eles[i];
           var s=eles[i].getAttribute("class");
           if(s!=null){
           if((s=='img')||(s=='J_ItemPic img')||(s=='productImg')){
               a=eles[i];
               a.click();break;
           }}}

    2.遍历所有A标签

    下面代码为找到淘宝宝贝页面,成交记录元素的代码:

    for(var i=0;i<document.getElementsByTagName("A").length;i++){var a;
           var d=document.getElementsByTagName("A")[i];
           var s=document.getElementsByTagName("A")[i].innerHTML;
           if(s!=null){
           if(s.indexOf("成交记录")>-1){
                a=document.getElementsByTagName("A")[i];alert(a.innerHTML);
               ClickElement(a);  //由于chromium控件元素不支持click事件,所以需要自己重新绑定事件

               break;
           }}}

    //-----------------点击元素的代码------------------------------

    function ClickElement(AObj) {  
        var e = document.createEvent("MouseEvent");
        e.initEvent("click", false, false);
        AObj.dispatchEvent(e);
    }





    二、根据ID或Name获取元素

    1.根据ID

    var a=document.getElementById("元素id");

    2.根据Name

    var b=document.getElementsByName("元素name").item(0);

    b.setAttribute("value","输入值");


    3.根据TagName

     var c=document.getElementsByTagName("INPUT")[0]; 

     var d=document.getElementsByTagName("INPUT").item(0);


    三、如何在Delphi中直接操作Document接口

    Button1.OnClick:

      chrm1.Browser.MainFrame.VisitDomProc(ChrmDomProc);


    procedure ChrmDomProc(const doc : ICefDomDocument);  //其他接口有待自己研究
    var
      s : string;
    begin
       doc.GetElementById('txtUsername').SetElementAttribute('Value','abc');
       s := doc.GetElementById('txtUsername').GetValue;
       showmessage(s);
    end;


    简单实例:

    var ele;

    ele=document.getElementById('ID');
    ele=document.getElementsByName('Name').iteme(0);
    ele=docuemnt.getElementsByTagName('TAG');

    ele.click();

    var e=document.createEvent("MouseEvent");
    e.initEvent("Click",false,false);
    ele.dispatchEvent(e);


     var c=document.getElementsByTagName("INPUT").item(0);

    转载请注明出处,原文地址:
    http://blog.csdn.net/xtfnpgy/article/details/48155323
  • 相关阅读:
    JavaWeb学习(17):优化三层(加入接口和 DBUtil)
    [每日一题]:The Lazy Cow(silver)
    JavaWeb学习(16): 三层架构模式实现简单的学生管理系统(内含数据库)
    BZOJ3275Number——二分图最大权独立集
    BZOJ3438小M的作物——最小割
    BZOJ2127happiness——最小割
    BZOJ3894文理分科——最小割
    BZOJ2150部落战争——最小路径覆盖
    BZOJ4205卡牌配对——最大流+建图优化
    BZOJ4032[HEOI2015]最短不公共子串——序列自动机+后缀自动机+DP+贪心
  • 原文地址:https://www.cnblogs.com/xtfnpgy/p/9285399.html
Copyright © 2011-2022 走看看