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
  • 相关阅读:
    php : Warning: strftime(): It is not safe to rely on the system's timezone settings.
    php : DOM 操作 XML
    php : 基础(3)
    php : 基础(2)
    阿里云物联网平台体验(NetGadgeteer+C#篇)
    阿里云物联网平台体验(树莓派+Nodejs篇)
    阿里云物联网平台体验(树莓派+Python篇)
    【MVP时间】5节课助你破解物联网硬件接入难点
    破解物联网落地困境-阿里云硬件接入最佳实践
    从端到云——工业物联网项目全栈快速开发实践
  • 原文地址:https://www.cnblogs.com/xtfnpgy/p/9285399.html
Copyright © 2011-2022 走看看