• 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
  • 相关阅读:
    day-11函数的形参与实参
    day-10初级函数
    .检查用户名是否使用接口
    04.vue发送短信逻辑
    03.celery发送短信接口
    02.celery配置与基本使用
    Celery介绍
    python爬虫与Django框架vue交互的前后端代码详情(励志人生网实例)
    爬虫找工作之面试题(2)
    爬虫找工作之面试题(1)
  • 原文地址:https://www.cnblogs.com/xtfnpgy/p/9285399.html
Copyright © 2020-2023  润新知