llww7779 发表于 2018-6-29 19:43:15

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)

llww7779 发表于 2018-6-29 19:44:34

有谁能知道_IEAction($oLink, "click")和_IELinkClickByText($oIE, $sLinkText)什么情况下有效呢?

Bone 发表于 2018-7-1 09:18:43

_IELinkGetCollection换成 _IEGetObjById试试

citysvip 发表于 2018-7-3 10:44:34

最好有网页地址。否则没法判断你这个东西如何写。IE.au3本身主要的东西还是JS那些。你看它的源代码,主要是document.getElementByID之类的。基本上会HTML和简单JS就能基本驾驭这个东西。看源代码还是能学很多你不了解的东西。很难懂。但是成为高手的必经之路吧。

llww7779 发表于 2018-7-3 15:25:34

谢谢楼上,我看了源代码,没有ID,所以无法用document.getElementByID判断。因为网页使用asp.net1.1编写的源代码。所以只能用键盘模拟点击连接了。
页: [1]
查看完整版本: WEB链接模拟点击有时无效