找回密码
 加入
搜索
查看: 2660|回复: 3

[IE类操作] (已解决)关于网页模拟点击按钮很奇怪的一件事

[复制链接]
发表于 2011-1-19 21:10:34 | 显示全部楼层 |阅读模式
本帖最后由 papapa314 于 2011-1-20 18:13 编辑

我用如下代码可以点击到"百度一下"按钮,
#include<ie.au3>
$oIE=_IECreate("www.baidu.com")

WinWait("百度一下")

$oinputs=_IETagNameGetCollection($oIE,"input")
For $oInput In $oInputs

        If $oInput.value = "百度一下" Then
        _IEAction($oInput,"click")
EndIf
Next

可是,当我不关这个网页,用如下代码,就点击不到“百度一下”按钮了,而且还报错:“_IEStatus_InvalidDataType”


#include<ie.au3>

$oIE=WinActivate("百度一下")
sleep(1000)

$oinputs=_IETagNameGetCollection($oIE,"input")
For $oInput In $oInputs

        If $oInput.value = "百度一下" Then
        _IEAction($oInput,"click")
EndIf
Next



问这个问题的原因是,我们在操作网页的时候,可能要先激活某个窗口,然后再对这个窗口点击按钮,可是如此一来,就会出现上面的后果。

另外,补充一点,也可以用如下代码点击,然而,当网页不是马上生成的话,也无法点击,同时报错,问题与上类似:

$a=_IEGetObjById($oIE,"su")
_IEAction($a,"click")

请高手指教。

谢谢!
发表于 2011-1-19 23:28:02 | 显示全部楼层
回复 1# papapa314


$oIE=_IEAttach("百度一下")
发表于 2011-1-20 15:00:40 | 显示全部楼层
#include<ie.au3>
$handle = WinGetHandle("百度一下,你就知道 - Windows Internet Explorer")
$oIE = _IEAttach($handle, "HWND")
$oinputs = _IETagNameGetCollection($oIE, "input")
For $oInput In $oinputs
        If $oInput.value = "百度一下" Then
                _IEAction($oInput, "click")
        EndIf
Next
 楼主| 发表于 2011-1-20 18:13:10 | 显示全部楼层
回复 3# ceoguang


    呵呵能用,单纯的用$oIE=_IEAttach("百度一下"),有时候行,有时候不行,但用这个好像都行,非常感谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-2 21:10 , Processed in 0.081508 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表