读书人

WebBrowser中如何模拟鼠标点击超级连接

发布时间: 2012-03-01 10:25:46 作者: rapoo

WebBrowser中怎么模拟鼠标点击超级连接
如题,我用代码 IHTMLElement.click 事件是不行的,是打开了超级连接,但是没有响应 ONCLICK事件,所以这样的方法不行,必须相应才行。

另外,我希望最好是这样,查找当前页面的连接坐标,若此链接未出现在屏幕中,自动将滚动条,滚动到这个相应的位置,然后将鼠标定位到此链接上,模拟点击。

希望我说的清楚,谢谢各位前辈。

我在补充几点:

begin
with (WebBrowser1.Document as IHTMLDocument2).body.all as
IHTMLElementCollection do
for I := 0 to length - 1 do
with item(I, I) as IHTMLElement do
if SameText(tagName, 'a') then
with item(I, I) as IHTMLAnchorElement do
if SameText(href, 'http://www.csdn.net/') then click;
end;


像这样的代码就不用了,不是我要的。



if Pos( edtInnerText.Text, WideCharToString(PWideChar(innerText) ) ) <> 0 then
begin
t := offsetTop;
L := offsetLeft ;
while (item(i,i) as IHTMLElement) = (item(i,i) as IHTMLElement).offsetParent do
begin
t := t + offsetTop;
L := L + offsetLeft;
end;

end;


这样的代码好像可以用,但是我取得的数据总是太小,我需要点击的连接在滚动条的底部,但返回的 t 的值恒为1,L值恒为15,不知道为啥。

[解决办法]
offsetParent 递归一下
[解决办法]
你这个问题其实关键的是无法确定超级链接的坐标,点击比较简单。
我也遇到过这种问题,没人能解决,或者是只言片语的答案,下手做就不是那么回事了
期待着你能尽快解决,也给我共享一下,^_^!
[解决办法]
如果直接调用OLE的事件不行,可以试试分析页面代码,调用JS看看
[解决办法]

探讨
如果直接调用OLE的事件不行,可以试试分析页面代码,调用JS看看

读书人网 >.NET

热点推荐