仙乃日 发表于 2012-4-12 20:53:50

如何判断网页中某一元素已经加载或者POST的结果?

本帖最后由 仙乃日 于 2012-4-12 22:05 编辑

使用IE来操作网页在一些网速比较慢的时候很烦人的,特别是一些网页含有大量图片的时候。

而我们操作经常是对一些特定网页元素来进行的,只要判断其加载完毕就可以,不必等待整

个网页加载完毕。一开始都是调用IE.AU3这个UDF来着的,结果自己没能力只使用这个UDF

来判断网页中一元素是否加载完毕。直接给个例子: $oIE = _IECreate("http://cloud.189.cn/zhuanti/activity2/index.jsp", 1, 1, 0, 0) ;不等待直接返回
        Do
        Until IsObj($oIE)
        ;MsgBox(64,"name",String(ObjName($oIE)))
Do
Sleep(200)
Until StringInStr($oIE.document.body.innerHTML, "apply_btn") ;读取网页body部份的HTML,直到含有给的代码
$Ele = _IEGetObjById($oIE, "apply_btn")
_IEAction($Ele, "click")
而对于post提交操作的结果判断,可以使用$oIE.document.body.innerText来判断。

_IECreate ( [$s_Url = "about:blank" [, $f_tryAttach = 0 [, $f_visible = 1 [, $f_wait = 1 [, $f_takeFocus = 1]]]]] )

$f_wait这个参数最终貌似调用_IELoadWait来完成的。就是这一简单的判断自己也费了不少时间,一开始是看到论坛上有人建议

使用_IEGetObjById然后再使用Isobj,结果发现这是行不通的。因为当那元素ID没加载时候,使用_IEGetObjById就会出错,根

本没机会再使用Isobj去判断了。

zldfsz 发表于 2012-4-12 21:11:18

你是在提问呢还是在给人分享心得呢

仙乃日 发表于 2012-4-12 22:01:53

回复 2# zldfsz


    都有吧,至少也找着一种可用的法子。希望有朋友也分享一下其解决的法子。

风行者 发表于 2012-4-13 04:45:40

http://www.autoitx.com/forum.php?mod=viewthread&tid=31600&extra=

deliy 发表于 2013-12-25 14:54:05

学习来了学习来了
页: [1]
查看完整版本: 如何判断网页中某一元素已经加载或者POST的结果?