弱弱地问一句:这是不是AutoIT的Bug啊(程序假死)?
先说我是初学,偶只是弱弱地问一下这个问题是不是Bug?因为不确定代码是否有误,所以来问问!下面是执行一个设备升级的代码中的一段,运行之后每次到点击“浏览(fimage)”按钮后都无法执行选择指定的文件,而且GUI每次会死在这个地方!关闭文件选择框后就可以恢复正常,请问高手这是代码错误还是是Bug?
代码片段如下:(所有变量都是在ini文件读取的,还有一个GUI就不写出来了!)
$IE=_IECreate("192.168.20.2/Pages/maintenance.asp",0,1,0,0)
$IE2=_iecreate("192.168.20.2/Pages/about.asp",0,1,1,0)
$get_txt=_IEBodyReadText($IE2)
$check_upgrade=StringRegExp($get_txt,$Upgrade_version,0)
$check_downgrade=StringRegExp($get_txt,$Downgrade_version,0)
$button=_IEGetObjByName($IE,"Upgrade")
$button2=_IEGetObjByName($IE,"fimage")
_IEQuit($IE2)
_IEAction($button2,"click")
$msg=WinExists("选择文件","文件名")
If $msg=1 Then
If $check_upgrade=1 Then
ControlSetText("选择文件","文件名","Edit1","D:\tmp\1.bin")
ElseIf $check_downgrade=1 Then
ControlSetText("选择文件","文件名","Edit1","D:\tmp\2.bin")
EndIf
Sleep(1000)
ControlClick("选择文件","文件名","Button2","left")
EndIf
_IEAction($button,"click")
===========================================================
代码的流程大概是:访问$IE、$IE2--->获取$IE2上的版本--->点击$IE的“浏览”按钮--->根据版本选择不同文件(就在这里出问题,假死,而且不能选中文件)--->然后提交重启--->OK了!
附件是程序出现死机的画面,请高手解答,谢谢!()
[ 本帖最后由 xkowen 于 2008-12-1 15:15 编辑 ] 你这段代码一直在循环中,是会这样的 while 1
test()
wend
这几句直接改为
text()
回复 3# netegg 的帖子
我就是要一个循环的代码,因为是自动升降级,至少要执行一百遍, _IEAction($button,"click")后还有个sleep(12000),我刚更新了,以前写忘了!每隔120s执行一次仍然会出现程假死现象,怎么办啊?到底为什么啊?郁闷ing...还有就是为什么无法选中文件啊?可不可以直接向“type:file”的控件直接发送文本啊?这样就可以避免程序假死了!(没学过网页,求教) 那个就麻烦点了,似乎是需要用句柄变量,其实用autoit做网络相关的东西极其不合适(个人认为),效率太低了
至于你说的type:file,我不是很明白你具体指的是什么
[ 本帖最后由 netegg 于 2008-11-18 15:17 编辑 ]
回复 5# netegg 的帖子
其实这个程序主要是对IP电话之类的设备循环升/降级有用!Type:file就是上传文件的框,如附件:浏览.jpg
大虾,你还没解答我----为什么上面的代码无法选中文件?谢谢! 你要选中什么类型的文件*.bin?
回复 7# netegg 的帖子
对,就是二进制的bin文件,这种文件主要是嵌入式系统的升级文件,有部分路由器也是这种升级文件!先解答---为什么上面的代码无法选中文件吧?大虾! 先定义$ie为对象变量$oIE,而且你最好把代码全发上来,好测试,这么猜的话,不是很容易解决问题[ 本帖最后由 netegg 于 2008-11-18 15:58 编辑 ] 简单的说是参数传递的事情,不过,情况不大好说,要具体分析
回复 9# netegg 的帖子
可不可以给几行代码实例啊?谢谢大虾!先定义$ie为对象变量$oIE-------好像没有这个必要吧? 先试试把"Edit1"变成$edit1
回复 12# netegg 的帖子
大虾,把"Edit1"变成$edit1后还是无法选中文件,程序仍然会在跳出选择框后出现假死!在想想还有没有别的办法...:face (13): 假死情况是什么样的,鼠标和一切操作都不行 $oIE的操作选择性大一些,虽说其实没什么大区别
页:
[1]
2