博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
示例 - 10行代码在C#中获取页面元素布局信息
阅读量:4677 次
发布时间:2019-06-09

本文共 1198 字,大约阅读时间需要 3 分钟。

最近研究一个如何在网页定位验证码并截图的问题时, 用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);}

运行效果:

 

 

转载于:https://www.cnblogs.com/iamzyf/p/3566658.html

你可能感兴趣的文章
HotSpot 自动内存管理笔记与实战
查看>>
django缓存
查看>>
winform中真正的透明label
查看>>
(Dynamic Proxy)动态代理模式的Java实现
查看>>
sql三大范式
查看>>
关于TP5模板输出时间戳问题--A non well formed numeric value encountered
查看>>
js延迟加载
查看>>
如何在win 2008 server和win 7上add web site
查看>>
[Selenium]如何实现上传本地文件
查看>>
★不评价别人的生活,是一个人最基本的修养
查看>>
MySQL里执行SHOW INDEX结果中Cardinality的含义
查看>>
centos 7 下vnc弹出窗口太小解决方法
查看>>
SpringCloud Feign的分析
查看>>
64位Ubuntu 编译 hadoop源码
查看>>
使用MD5WithRSA来签名和验签(.NET)
查看>>
QQ登录JS SDK教程,调用openapi接口
查看>>
Socket编程
查看>>
为什么需要输入验证码?
查看>>
【spring 4】AOP:动态代理
查看>>
十六进制转化二进制[c]
查看>>