我在Delphi中使用TWebBrowser
。
我需要帮助来获取HTML元素的位置。
我需要的元素是一个框架。使用elementFromPoint()
:
Document.elementFromPoint(X, Y)
我正在获取框架,但不是内部框架。
我尝试使用它来获取它:
WebBrowser.OleObject.Document.Frames
但这会在传输帧时出现访问错误。
答案 0 :(得分:0)
使用Document.elementFromPoint()
是正确的方法。您没有考虑的是HTML在分层DOM树中解析而elementFromPoint()
不是递归的。
您要求浏览器的顶级文档在文档中的给定X,Y坐标处找到直接子元素。在这种情况下,这是一个框架元素。
框架是一个嵌入窗口,用于存放另一个文档。您需要访问框架的Document并要求它在框架内的目标X,Y坐标处查找子元素。等等,直到你最终到达最底层的孩子。
请注意elementFromPoint()
采用相对于您正在调用的elementFromPoint()
文档左上角的客户端坐标。因此,当您想要搜索子框架的Document时,您需要先从目标X,Y坐标中减去框架自己的左上角X,Y坐标(在其父文档中),然后再调用框架上的elementFromPoint()
文献