按位置获取HTML元素

时间:2016-08-05 07:50:50

标签: delphi delphi-7 twebbrowser

我在Delphi中使用TWebBrowser。 我需要帮助来获取HTML元素的位置。

我需要的元素是一个框架。使用elementFromPoint()

Document.elementFromPoint(X, Y)

我正在获取框架,但不是内部框架。

我尝试使用它来获取它:

WebBrowser.OleObject.Document.Frames

但这会在传输帧时出现访问错误。

1 个答案:

答案 0 :(得分:0)

使用Document.elementFromPoint()是正确的方法。您没有考虑的是HTML在分层DOM树中解析而elementFromPoint()不是递归的。

您要求浏览器的顶级文档在文档中的给定X,Y坐标处找到直接子元素。在这种情况下,这是一个框架元素。

框架是一个嵌入窗口,用于存放另一个文档。您需要访问框架的Document并要求它在框架内的目标X,Y坐标处查找子元素。等等,直到你最终到达最底层的孩子。

请注意elementFromPoint()采用相对于您正在调用的elementFromPoint()文档左上角的客户端坐标。因此,当您想要搜索子框架的Document时,您需要先从目标X,Y坐标中减去框架自己的左上角X,Y坐标(在其父文档中),然后再调用框架上的elementFromPoint()文献