WebBrowser浏览器控件,怎么获取页面某网页元素XPATH

WebBrowser浏览器控件,怎么获取页面某网页元素XPATH,第1张

首先:鼠标API函数

[DllImport("User32")]

public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);

[DllImport("User32")]

public extern static void SetCursorPos(int x, int y);

[DllImport("User32")]

public extern static bool GetCursorPos(out POINT p);

public struct POINT

{

public int X;

public int Y;

}

public enum MouseEventFlags

{

Move = 0x0001,

LeftDown = 0x0002,

LeftUp = 0x0004,

RightDown = 0x0008,

RightUp = 0x0010,

MiddleDown = 0x0020,

MiddleUp = 0x0040,

Wheel = 0x0800,

Absolute = 0x8000

}

其次:载入webBrowser

private void FormBrower_Load(object sender, EventArgs e)

{

webBrowserNavigate(">

可以通过获取g标签的第一个子节点,用它的x,y坐标。或者把g标签换成svg标签,这样可以获取x,y的坐标值。

<svg >

<svg id="g1" x=20 y=20>

<rect id="1"></rect>

<rect id="2"></rect>

<rect id="3"></rect>

</svg>

<svg >

documentgetElementById("g1")xanimValvalue;

你好,JS没有直接获取元素相对于页面的绝对坐标的方法。但是我们可以通过相关值的计算而得到。首先我们假设input元素ID为"J_MyInput",然后看下面代码注释:

var input = documentgetElementById('J_MyInput'); // 根据ID取得元素对象

var sizeObj = inputgetBoundingClientRect(); // 取得元素距离窗口的绝对位置

// 窗口的滚动偏移(垂直、水平)

var bodyOffset = {top: documentbodyscrollTop, left: documentbodyscrollLeft};

// 元素相对于页面的绝对位置 = 窗口滚动偏移 + 元素相对于窗口的绝对位置

var inputOffsetTop = sizeObjtop + bodyOffsettop; // 距顶部

var inputOffsetLeft = sizeObjleft + bodyOffsetleft; // 距左侧

希望能解决你的问题,有疑问可追问,望采纳~

这个需要js或者swf的配合

或者是写BHO

--------------

随你怎么想 我用的js 记录点击信息 然后用swf做的点击报表

BHO需要安装,在本机上测试可以用,其他用户需要安装,所以不现实

webbrowser是一个activex控件,也就是说在webbrowser区域内是不属于vcl管辖的

只能是ax返回消息给vcl,这就是我说的js

点击节点的时候webbrowser会响应给vcl,但是如果在空白处或者非链接,按钮等元素是没有响应的,用js监听鼠标按下事件,然后回调给vcl

swf的绘图相对简单,加载页面之后,再根据点击点阵绘制点击热区,可以有效反映页面内的点击情况

网页可见区域宽: documentbodyclientWidth

网页可见区域高: documentbodyclientHeight

网页可见区域宽: documentbodyoffsetWidth (包括边线的宽)

网页可见区域高: documentbodyoffsetHeight (包括边线的高)

网页正文全文宽: documentbodyscrollWidth

网页正文全文高: documentbodyscrollHeight

网页被卷去的高: documentbodyscrollTop

网页被卷去的左: documentbodyscrollLeft

网页正文部分上: windowscreenTop

网页正文部分左: windowscreenLeft

屏幕分辨率的高: windowscreenheight

屏幕分辨率的宽: windowscreenwidth

屏幕可用工作区高度: windowscreenavailHeight

屏幕可用工作区宽度: windowscreenavailWidth

网页可见区域宽: documentbodyclientWidth

网页可见区域高: documentbodyclientHeight

网页可见区域宽: documentbodyoffsetWidth (包括边线的宽)

网页可见区域高: documentbodyoffsetHeight (包括边线的高)

网页正文全文宽: documentbodyscrollWidth

网页正文全文高: documentbodyscrollHeight

网页被卷去的高: documentbodyscrollTop

网页被卷去的左: documentbodyscrollLeft

网页正文部分上: windowscreenTop

网页正文部分左: windowscreenLeft

屏幕分辨率的高: windowscreenheight

屏幕分辨率的宽: windowscreenwidth

屏幕可用工作区高度: windowscreenavailHeight

屏幕可用工作区宽度: windowscreenavailWidth

网页可见区域宽: documentbodyclientWidth

网页可见区域高: documentbodyclientHeight

网页可见区域宽: documentbodyoffsetWidth (包括边线的宽)

网页可见区域高: documentbodyoffsetHeight (包括边线的高)

网页正文全文宽: documentbodyscrollWidth

网页正文全文高: documentbodyscrollHeight

网页被卷去的高: documentbodyscrollTop

网页被卷去的左: documentbodyscrollLeft

网页正文部分上: windowscreenTop

网页正文部分左: windowscreenLeft

屏幕分辨率的高: windowscreenheight

屏幕分辨率的宽: windowscreenwidth

屏幕可用工作区高度: windowscreenavailHeight

屏幕可用工作区宽度: windowscreenavailWidth

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth

scrollHeight: 获取对象的滚动高度。

scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离

scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

scrollWidth:获取对象的滚动宽度

offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度

offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置

offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置

eventclientX 相对文档的水平座标

eventclientY 相对文档的垂直座标

eventoffsetX 相对容器的水平坐标

eventoffsetY 相对容器的垂直坐标

documentdocumentElementscrollTop

有资料可以查看。。。

以上就是关于WebBrowser浏览器控件,怎么获取页面某网页元素XPATH全部的内容,包括:WebBrowser浏览器控件,怎么获取页面某网页元素XPATH、document.elementFromPoint获取坐标点下的元素、SVG中如何获取元素的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9520086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存