zoukankan      html  css  js  c++  java
  • 示例

    最近研究一个如何在网页定位验证码并截图的问题时, 用SS写了一段C#小脚本可以轻松获取页面任意元素的布局信息 (top, left, width, height). 10行功能代码, 觉得有点用, 现分享给大家:

    public dynamic GetRect(JQueryContext node)
    {
        node.Attr("pos_top", "0");
        node.Attr("pos_left", "0");
        Default.RunScript(string.Format("var pos = $('{0}').position();$('{0}').attr('pos_top', pos.top);$('{0}').attr('pos_left', pos.left);", node.JQueryExpression));
        return new { 
            top = node.Attr("pos_top"), 
            left = node.Attr("pos_left"), 
            width = node.Css("width"), 
            height = node.Css("height")
        };
    }

    - 基本思路是利用JQuery获取元素的position, 并临时保存在pos_top和pos_left属性中, 然后用JQuery将这两个属性的值读取出来即可. 

    在SS中调用并测试:

    public void Run()
    {
        Logger.ClearAll();
        Default.Navigate("http://www.gdtsearch.com/products.spiderstudio.codeviewer.htm");
        Default.Ready();
        var node = Default.SelectSingleNode("HTML:eq(0)>BODY:eq(0)>DIV:eq(0)>DIV:eq(1)>DIV:eq(0)>H2:eq(1)");
        var rect = GetRect(node);
        node.Css("background-color", "yellow"); //将元素设为高亮背景
        Logger.Log("top = " + rect.top + "px");
        Logger.Log("left = " + rect.left + "px");
        Logger.Log("width = " + rect.width);
        Logger.Log("height = " + rect.height);
    }

    运行效果:

  • 相关阅读:
    故乡
    webService和Restful
    java多线程(六)线程控制类
    java内存模型
    java多线程(五)线程通讯
    java多线程(四)死锁
    java多线程(三)线程的安全问题
    java多线程(二)线程的生命周期
    java多线程(一)创建线程的四种方式
    Spring Cloud(一)简单的微服务集成Eureka
  • 原文地址:https://www.cnblogs.com/iamzyf/p/3566658.html
Copyright © 2011-2022 走看看