找回密码
 加入
搜索
查看: 11019|回复: 17

[IE类操作] [已解决]请问,如何检测网页加载完成,但又不影响循环执行?

 火.. [复制链接]
发表于 2011-3-19 11:24:30 | 显示全部楼层 |阅读模式
本帖最后由 曼菲士 于 2011-3-20 14:15 编辑

例如,我同时打开5个网页,我想检测这5个网页是否加载完成,如果没完成则去执行其它操作,等到5个全加载完成后再读取它们的网页源码获取相关内容,现在用_IELoadWait有个问题,在检测一个网页是否完成时,如果它没加载完成,无法执行其它子程序,只有它检测到完成了才能返回到我们自己的代码执行下一步代码,我想,如果 _IELoadWait能实现检测一次,完成则返回1,未完成返回0该多好,检查了一下IE.AU3里的代码,太复杂,水平有限,看不太懂,目前能想到的是用多进程来解决,但还未尝试,请大家帮忙看还有没有其它更好的办法。
发表于 2011-3-19 11:59:28 | 显示全部楼层
估计这个很难,跟网速有很大的关系
 楼主| 发表于 2011-3-19 13:41:12 | 显示全部楼层
想要的_IELoadWait只是判断网页是否加载完成,返回参数给调用者,假设完成返回1,未完成返回0,在执行一次的过程中不用等待,不管完成与否给个结果就行了,我可以用定时循环来判断几时得到的是完成即可。
发表于 2011-3-19 13:56:32 | 显示全部楼层
回复 3# 曼菲士

函数正如其名,LoadWait的功能就是加载中等待。

要想实现你的目的,请参考WebBrowser事件。
发表于 2011-3-19 15:07:19 | 显示全部楼层
只为获取网页源的话不如用_INetGetSource函数
 楼主| 发表于 2011-3-19 16:16:00 | 显示全部楼层
只为获取网页源的话不如用_INetGetSource函数
3mile 发表于 2011-3-19 15:07



    那个网页有检测,_Inet不能获取,得到的只是网页的非法浏览提示信息。
发表于 2011-3-19 22:30:29 | 显示全部楼层
加载完成的网页标题栏有变化吗?还有是否可以通过查看页面某一标志性tag来判断页面已符合要求。
发表于 2011-3-19 23:15:28 | 显示全部楼层

#include <IE.au3>
Global $Complete, $oIE[3], $iComplete[3], $Url[3] = ["www.google.com", "www.autoitx.com", "www.autoitscript.com"]
For $i = 0 To 2
        $oIE[$i] = _IECreate($Url[$i], 0, 1, 0)
Next
AdlibRegister("State", 100)
While Not($Complete)
        Sleep(100)
WEnd
ConsoleWrite("Done!" & @LF)

Func State()
        Local $State
        If $Complete Then Return AdlibUnRegister("State")
        For $i = 0 To 2
                If Not $iComplete[$i] Then
                        $State = _IEPropertyGet($oIE[$i], "readyState")
                        If String($State) = "complete" Or $State = 4 Then
                                $iComplete[$i] = Not $iComplete[$i]
                                ConsoleWrite($Url[$i] & " Download Complete!" & @LF)
                        EndIf
                EndIf
        Next
        If $iComplete[0] And $iComplete[1] And $iComplete[2] Then $Complete = Not $Complete
EndFunc   ;==>State
 楼主| 发表于 2011-3-20 14:15:02 | 显示全部楼层
谢谢版主,这方法行!
发表于 2011-7-10 21:47:01 | 显示全部楼层
留记号,以备参考
发表于 2011-10-24 15:13:12 | 显示全部楼层
参考使用,记录!
发表于 2011-12-3 20:54:23 | 显示全部楼层
做个记号先,过几天用得上!
发表于 2014-5-22 07:06:39 | 显示全部楼层
非常好的思路!!
发表于 2014-12-7 22:02:47 | 显示全部楼层
感谢lz分享哈,真的很赞呢
发表于 2015-1-25 16:55:58 | 显示全部楼层
感谢lz分享,非常好的思路!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-17 03:08 , Processed in 0.082409 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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