• 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
  • 相关阅读:
    135. Candy(Array; Greedy)
    69. Sqrt(x) (Divide-and-Conquer)
    109. Convert Sorted List to Binary Search Tree (List; Divide-and-Conquer, dfs)
    108.Convert Sorted Array to Binary Search Tree(Array; Divide-and-Conquer, dfs)
    34. Search for a Range (Array; Divide-and-Conquer)
    35. Search Insert Position (Array; Divide-and-Conquer)
    82. Remove Duplicates from Sorted List II (List)
    python dict list tuple
    python unix时间戳
    字符串哈希函数
  • 原文地址:https://www.cnblogs.com/xtfnpgy/p/9285399.html
Copyright © 2020-2023  润新知