kinghu318 发表于 2011-3-25 09:51:02

怎么判断网页是否加载完成?(已解决)

本帖最后由 kinghu318 于 2011-3-29 15:30 编辑

Global $ie = _IECreateEmbedded ()               
GUICtrlCreateObj($ie,0, 400, 600,400)               
_IENavigate($ie,"reg.qq.com")
............中间是一系列的赋值操作
$sub=_IEGetObjById($ie,"a_submit");获取注册按钮
_IEAction ($sub, "click");模拟点击事件
_IELoadWait ($ie);等待加载(好像无法等待网页加载完成)
getQQ("sss")
Func getQQ($ms)
                _logerr();一些错误提示的获取
                        $divs=_IETagNameGetCollection($ie,"div")
                                for $div In $divs      
                                        if $div.className=="account" Then   
                                                GUICtrlCreateListViewItem($div.innerText,$ListView1)
                                                writeQQ($div.innerText,$ms);注册成功的QQ写入文本
                                        EndIf
                                Next
                EndIf
EndFunc
Func _logerr()
        $yzmcw=_IEGetObjById($ie,"e_validecode")   
        if not @error Then
                if $yzmcw.innerText<>"" Then
                        ;SplashOff()
                        GUICtrlCreateListViewItem($yzmcw.innerText,$ListView1)
                        $res=True
                EndIf
        endif
        $mmcw=_IEGetObjById($ie,"e_pass")
        if not @error Then   
                if $mmcw.innerText<>"" Then
                        ;SplashOff()
                        GUICtrlCreateListViewItem($mmcw.innerText,$ListView1)
                        $res=True
                EndIf
        endif
       
        $lis=_IETagNameGetCollection($ie,"li")
        if @EXTENDED==0 then Sleep(1000)   
        For $li In $lis      
                If $li.className=="title" Then
                        ;SplashOff()
                        GUICtrlCreateListViewItem($li.innerText,$ListView1)
                        $res=True
                EndIf
        Next
EndFunc
请各位老大帮忙,因为网速不一,加载网页的速度不同,有时候根本就获取不到网页上的值,怎么样才能判断提交已经完成,然后再进行后面的获取错误或者是成功得到的QQ,谢谢。。。。

ceoguang 发表于 2011-3-25 10:10:09

用IE来操作的话太慢了.推荐用wininet,winhttp或winsock.
那样只需要三个数据包,而且没有临时文件.
另外,这个页面某部份好像是使用异步ajax的,_IELoadWait是无法判断这些操作的.

kinghu318 发表于 2011-3-25 10:17:01

回复 2# ceoguang

谢谢,楼上回复,的确,那个提交操作用_ieloadwait根本无效,ie操作确实很慢,网速的加载很是麻烦,但是我暂时只会简单的模拟鼠标键盘操作,楼上说的winnet,winhttp,winsock不知道能不能给个实例,我学习学习,谢谢。。。。

dalao 发表于 2011-4-18 14:24:49

我也来学习一下

zouyingj 发表于 2011-4-25 11:39:34

我也来研究下

455901394 发表于 2011-4-25 12:11:09

能不能死亡后人物制动制动跑回打怪点去呀,这个我找了好久了。有高手吗?帮帮忙

smking0204 发表于 2011-4-25 20:59:36

我也来研究下
页: [1]
查看完整版本: 怎么判断网页是否加载完成?(已解决)