10行代码在C#中获取页面元素布局信息
2014-02-25 16:26
531 查看
最近研究一个如何在网页定位验证码并截图的问题时, 用SS写了一段C#小脚本可以轻松获取页面任意元素的布局信息 (top, left, width, height). 10行功能代码, 觉得有点用, 现分享给大家:
- 基本思路是利用JQuery获取元素的position, 并临时保存在pos_top和pos_left属性中, 然后用JQuery将这两个属性的值读取出来即可.
在SS中调用并测试:
运行效果:
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); }
运行效果:
相关文章推荐
- {Reship}{C#}{GDI+}GDI+画笔,线,区域类型
- C#滚动字幕的实现
- c# Invoke和BeginInvoke 区别
- C# Dynamic 关键字学习
- C#统计文章中单词的重复次数,并且按照次数从高到低排序返回(无法处理中文)
- dll错误等笔记
- C# 7个读写Excel文件的类库
- 【WinForm】C# 采用POST登录京东
- C# 日期格式化(从别人处收藏,记下,方便自己使用)
- C# 正则表达式
- C#核心语法
- 示例 - 10行代码在C#中获取页面元素布局信息
- C# 的时间戳转换
- C#编程总结(十三)数据压缩
- c#显示当前在线人数示例
- [CLR via C#]15. 枚举类型和位标志
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - SOA面向安全的服务调用接口
- 【C#】Unicode的流言终结者和编码大揭秘
- C#+AE 判断点是否在面内的方法
- C#窗体使用AE读取shp