找回密码
 加入
搜索
查看: 3067|回复: 3

[IE类操作] 网页中等待数秒才能点击的问题

[复制链接]
发表于 2010-3-17 10:18:22 | 显示全部楼层 |阅读模式
例如http://bbs.kaoyan.com/kaoyanreg.php  注册
需要等待数秒才能点击“同意”按钮,
因为网速不同,我觉得用sleep延迟不太好。
不知有什么方法不用等待,或者等待一出现同意按钮就自动点击?
我的xml不太好.
网页部分源文件如下:
<script type="text/javascript">
        var secs = 9;
        var wait = secs * 1000;
        $('rulebutton').innerHTML = "请仔细阅读以上的注册许可协议 (" + secs + ")";
        for(i = 1; i <= secs; i++) {
                window.setTimeout("update(" + i + ")", i * 1000);
        }
        window.setTimeout("timer()", wait);
        function update(num, value) {
                if(num == (wait/1000)) {
                        $('rulebutton').innerHTML = "请仔细阅读以上的注册许可协议";
                } else {
                        printnr = (wait / 1000) - num;
                        $('rulebutton').innerHTML = "请仔细阅读以上的注册许可协议 (" + printnr + ")";
                }
        }
        function timer() {
                $('rulebutton').innerHTML = '<button type="submit" id="rulesubmit" name="rulesubmit" value="true">同 意</button>   <button type="button" onclick="location.href=\'http://bbs.kaoyan.com/\'">不同意</button>';
        }
        </script>
发表于 2010-3-17 10:35:14 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
发表于 2010-3-17 14:33:17 | 显示全部楼层
这样做广告是不是很不好啊。LS的同志
发表于 2010-3-17 14:34:41 | 显示全部楼层
_IELoadWait
--------------------------------------------------------------------------------

在网页内容加载完全之后返回.


#include <IE.au3>
_IELoadWait ( ByRef $o_object [, $i_delay = 0 [, $i_timeout = -1]] )




参数

$o_object InternetExplorer.Application或DOM组件的对象变量
$i_delay [可选参数]: 检查状态前等待的毫秒值
$i_timeout [可选参数]: 退出程序前等待的时间(默认 = 300000毫秒;5分钟)



返回值

成功: 返回1
失败: 返回0并设置@ERROR
@Error: 0 ($_IEStatus_Success) = 无错误
1 ($_IEStatus_GeneralError) = 一般错误
3 ($_IEStatus_InvalidDataType) = 无效数据类型
4 ($_IEStatus_InvalidObjectType) = 无效对象类型
6 ($_IEStatus_LoadWaitTimeout) = 等待加载超时
8 ($_IEStatus_AccessIsDenied) = 访问被拒绝
9 ($_IEStatus_ClientDisconnected) = 客户端断开
@Extended: 包含无效参数数量



注意/说明

许多IE.au3程序自动调用_IELoadWait()(如_IECreate(), _IENavigate()等). 大多数运行它的函数也允许你通过$f_wait参数关闭它如果你不想等候或如果你想自己调用它.

当文档对象或DOM组件被传递到_IELoadWait, 将检查容器元素的准备状态并且包括父窗口状态.

浏览器脚本安全限制有时会阻止_IELoadWait完全加载页且偶尔会导致不被捕获的错误. 在此类情况中可能需要避免调用_IELoadWait和试图使用其他方法确保页面完成加载. 这些方法包括使用休眠命令, 检查浏览器状态栏文本和其他方法. 当使用针对除InternetExplorer (browser)外的对象所调用的_IELoadWait函数, 或许针对浏览器自身调用_IELoadWait也可成功(如_IELoadWait($oIE)).

最常见的麻烦是页面重定向和与框架相关的跨站点脚本的安全限制. 一些应用程序(如Gmail)采用的页面重写技术也可能带来麻烦.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 20:26 , Processed in 0.076700 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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