WEB链接模拟点击有时无效
抓取网页,模拟click点击页码链接,页码形式为1,2,3,4,5,6,7,8,9,10,...用了几种方式,有时有效,有时无效。也不知是什么原因。Local $oIE = _IECreate("http://10.?.?.?/HBWebApp/HOLIDAYAPP/PAGES/OutList.aspx")
Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
Local $sLinkText = _IEPropertyGet($oLink, "OuterText")
If $sLinkText = "2" Then
_IEAction($oLink, "click")
_IELinkClickByText($oIE, $sLinkText)
ExitLoop
EndIf
Next
也不知是IE问题还是什么版本问题,_IEAction($oLink, "click")和_IELinkClickByText($oIE, $sLinkText),不好使。用msgbox测试If $sLinkText = "2" Then,能够弹出,但click不执行。
后来又用_IELinkClickByIndex ($oIE, 30),第2页链接index为30,随便模拟点击,也没有反应。
最后没有办法,用了最原始的模拟键盘点击才成功,先用TAB到指定链接让后模拟Ctrl+enter模拟点击。
If $i < 11 Then
Send("{TAB " & 34 + $i & "}")
Else
If Mod($i,10)=0 Then
Send("{TAB " & 35 + $i-10*(Int($i/10)-1) & "}")
Else
Send("{TAB " & 35 + $i-10*(Int($i/10)) & "}")
EndIf
EndIf
Sleep(3000)
Send("^{ENTER}")
_IELoadWait($oIE)
Sleep(3000)
有谁能知道_IEAction($oLink, "click")和_IELinkClickByText($oIE, $sLinkText)什么情况下有效呢? _IELinkGetCollection换成 _IEGetObjById试试 最好有网页地址。否则没法判断你这个东西如何写。IE.au3本身主要的东西还是JS那些。你看它的源代码,主要是document.getElementByID之类的。基本上会HTML和简单JS就能基本驾驭这个东西。看源代码还是能学很多你不了解的东西。很难懂。但是成为高手的必经之路吧。 谢谢楼上,我看了源代码,没有ID,所以无法用document.getElementByID判断。因为网页使用asp.net1.1编写的源代码。所以只能用键盘模拟点击连接了。
页:
[1]