找回密码
 加入
搜索
查看: 1673|回复: 5

[AU3基础] [已解决]执行ie批量注销用户,注销600人,但总是注销到40多人是报错

[复制链接]
发表于 2020-5-13 16:47:00 | 显示全部楼层 |阅读模式
本帖最后由 mycooled 于 2020-5-15 13:07 编辑

执行ie批量注销用户,注销600人,但总是注销到40多人是报错,有时候也会注销60多人时报错,_IEGetObjByName,_IEGetObjById,_IETableGetCollection都可能出错,请教如何解决。我看有人说用if @error,_IEPropertyGet($oIE,"busy"),但我看busy得到的都是false,@error判断不知道如何操作
发表于 2020-5-14 11:26:28 | 显示全部楼层
你用ie操作600个页面   就算成功了  后面的操作占用的内存也会十分惊人.效率很低.

http是无状态的  直接清理掉本地cookie呢   或者用http协议
 楼主| 发表于 2020-5-14 12:35:34 | 显示全部楼层
我不是操作600个页面,是在同一个注销页面中提交600次
$tTxtRowVal = FileReadLine($oExcel)
          getOutWorkTxtVal($tTxtRowVal,@TAB,$oAgentCode,$oAgentName,$oIDNo)
          While $oAgentCode<>""
                 _IELoadWait($oIE)
                 Sleep(2000)
                 ConsoleWrite("RowNum = " & $oRowNum & " AgentCode = " & $oAgentCode & "  IDNo = " & $oIDNo & @crlf )
                 $oID= _IEGetObjByName($oIE, "ID")
                 _IEFormElementSetValue($oID, $oIDNo)
                 $oName= _IEGetObjByName($oIE, "NAME")
                 _IEFormElementSetValue($oName, $oAgentName)
                 $oIsValid= _IEGetObjByName($oIE, "ISVALID")
                 _IEFormElementSetValue($oIsValid, "0")
                 $oSearch = _IEGetObjById ($oIE, "searchbutton")
                 _IEAction ($oSearch, "click")
                 _IELoadWait($oIE)
                 ;$tBusy = _IEPropertyGet($oIE,"busy")
                 ;ConsoleWrite("selectbutton busy = " & $tBusy & @crlf)

                 ;$table = _IETableGetCollection ($oIE,0)
                 $table= _IEGetObjById($oIE, "querytable" )
                 Sleep(1000)
 楼主| 发表于 2020-5-14 12:49:07 | 显示全部楼层
我怀疑是不是网页中的对象还没有装载成功,就已经被访问了,所以出现byid,byname出错。但我不知道怎么解决这个问题,看大神们有没有处理过相似的问题,我觉得总是加延迟sleep可能不是正解,因为毕竟网速什么的,是动态变化的,我这个要求比较急,看大神们能否给个建议
发表于 2020-5-14 18:26:18 | 显示全部楼层
ie操作初学者的。。。个人感觉。。。
1.网页注销界面是否有一些限制,防持续大量的注销?
2.操作代码上,既然是同一个注销界面,楼主怀疑装载方面出错,那试试在循环注销之前,获取需要注销的几个值,避免反复的使用iegetobject........后面在循环注销600次的过程中,直接setvalue。。。。看看会不会有改善。。。。
 楼主| 发表于 2020-5-15 11:29:59 | 显示全部楼层
感谢楼上的,我是刚学了2周autoit,所以感觉还欠缺很多,我按照你所说,把getbyid,getbyname放在循环之前,基本上没问题了,多谢多谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-9 00:29 , Processed in 0.073251 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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