本帖最后由 仙乃日 于 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去判断了。 |