首先:鼠标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)
{
webBrowser.Navigate("http://www.csdn.net");
}
接着:根据鼠标API获取到X,Y坐标区域。。
如何通过鼠标点击,获取的区域,导出网页元素的XPATH?
解析步骤:
创建一个HtmlElment2的getBoundingClientRect方法得到元素矩形(Rect),即元素Webbrowser位置。再通过offsetTop, .offsetLeft, .offsetWidth, .offsetHeight四个属性,获取绝对位置。
我知道,WebBrowser.document.activeElement.ID能够获取到某元素的ID。
但是,,如何获取到网页元素的XPATH,始终搞不出来。。。