找回密码
 加入
搜索
查看: 17230|回复: 18

[IE类操作] 【已解决】IE弹出选择文件上传窗口,操作无反应

  [复制链接]
发表于 2014-6-4 10:24:53 | 显示全部楼层 |阅读模式
本帖最后由 ap112 于 2014-6-6 14:39 编辑



$oBZf=_IETagNameGetCollection($oForm3, "input",2)
_IEAction($oBZf,"click")


WinWait("Choose File to Upload","")
send($Path)
sleep(500)
send("{Enter}")
sleep(500)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2014-6-4 11:03:27 | 显示全部楼层
坐等解决。。。。。。。
 楼主| 发表于 2014-6-4 13:21:40 | 显示全部楼层
为什么没人回?????????????
 楼主| 发表于 2014-6-4 14:37:49 | 显示全部楼层
 楼主| 发表于 2014-6-4 14:37:53 | 显示全部楼层
 楼主| 发表于 2014-6-4 14:40:37 | 显示全部楼层
 楼主| 发表于 2014-6-4 16:48:47 | 显示全部楼层
为什么?难道没人遇到过???????
 楼主| 发表于 2014-6-5 15:54:08 | 显示全部楼层

求助呀

本帖最后由 ap112 于 2014-6-5 15:58 编辑

没人遇到过这种情况

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2014-6-5 15:57:16 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-6-5 17:16:24 | 显示全部楼层
本帖最后由 shqf 于 2014-6-5 17:24 编辑

楼主没有利用好论坛的搜索功能啊。好多帖子问过这样的问题并得到了解决。
对这类比较特殊的弹出窗口,用一般的_IEAction($oBZf,"click")直接点击,程序会停止在那一句而不再执行下去,好像在等待执行反馈结果,但永远等不到一样。
1、我一开始用的方法最原始,双进程解决。在点击$oBZf前运行另一个程序,之后的操作代码等都写在那个程序内。
2、用_IEAction($oBZf,"focus"),再controlsend发送Enter键,这方法感觉很讨巧,适用在按TAB键后光标能移到这个按钮上的情况。但有时对更变态的java弹出窗口代码也会无效。
3、还记得有一个比较高超,感觉彪悍的方法,原理同双进程,只是代码写在一个脚本内,且全在一行内!好像是用AutoIt3.exe /AutoIt3ExecuteLine,至于这句后面怎么写忘了,唉,你查查吧。
 楼主| 发表于 2014-6-6 14:38:22 | 显示全部楼层
回复 10# shqf
谢谢!
1的方法我之前也用过,显得太没含量了;
2,的方法就是你说的那种变态情况,无效
3的方法貌似很强大,真心没搜索到

我使用以下方法解决的
;$text是网址
$oIE1 = _IECreate($text,1,0,1,1)
$oForm3 = _IEFormGetObjByName ($oIE1, "work_form")
$oBZf=_IETagNameGetCollection($oForm3, "input",2)
_IEAction($oBZf,"focus")
ControlSend($oBZf, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{space}")
WinActivate($oIE1)
ControlSetText("Choose File to Upload", "", "[CLASS:Edit; INSTANCE:1]", $Path )
ControlSend("Choose File to Upload", "", "[CLASS:Button; INSTANCE:1]", "{enter}")
$oBZf=_IETagNameGetCollection($oForm3, "input",3)
_IEAction($oBZf,"click")
发表于 2014-10-24 08:56:08 | 显示全部楼层
回复 11# ap112


    $oBZf=_IETagNameGetCollection($oForm3, "input",3),这句是找什么input?
发表于 2014-10-24 09:05:16 | 显示全部楼层
本帖最后由 libo1220 于 2014-10-24 09:13 编辑

楼主我的也是这个问题,帮忙指导指导



我参照过你的代码,但是不行
不知道这句是什么意思: ControlSend($selectFileButton, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{space}")

html代码:
<BODY background=../_themes/construc/urbtextb.gif aLink=#ff0066 link=#009900 text=#330033 vLink=#996600><BR><FONT class=lemon1 color=#000000>
1、点“<FONT color=#cc3366>Browser</FONT>”按钮,找到您所要粘贴的附件:</FONT>
<P></P>
<P><FONT class=chinese color=#000000>2<SPAN class=lemon1>、选定一个文件后,点“<FONT color=#cc3366>粘贴</FONT>”按钮,将该文件贴到邮件上:</SPAN></FONT>&nbsp;</P>
<FORM id=form1 encType=multipart/form-data method=post name=form1 action=GetFundFile.asp><INPUT value=attchment type=hidden name=sendtype>
<TABLE cellPadding=0 cellspaceing="0">
  <TBODY>
       <TR>
          <TD>附件1:</TD>
          <TD><INPUT size=60 type=file name=FILE1></TD>
       </TR>
       <TR></TR>
       <TR></TR>
       <TR>
          <TD></TD>
       <TR>
          <TD colSpan=2 align=middle>
               <INPUT id=submit1 value=粘贴 type=submit name=submit1>
          </TD>
      </TR>
  </TBODY>
</TABLE>
</FORM>
</BODY>

代码如下:
Local $attachFileForm = _IEFormGetObjByName($oIESelectFile,"form1")       ; $oIEGetFundFile
   Local $selectFileButton=_IEFormElementGetObjByName($attachFileForm,"FILE1")
   Local $attchmentTextfield = _IEFormElementGetObjByName($attachFileForm,"sendtype") ;
   Local $file=$filepath&"对帐结果管理.xls"
   ;MsgBox("","","1")
   ;_IEAction($selectFileButton,"click")
   _IEAction($selectFileButton,"focus")
   ControlSend($selectFileButton, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{space}")
   WinActivate($oIE)
   ControlSetText("选择要加载的文件", "", "[CLASS:Edit; INSTANCE:1]", $file )
   ControlSend("选择要加载的文件", "", "[CLASS:Button; INSTANCE:1]", "{enter}")
   ;$oBZf=_IETagNameGetCollection($attchmentTextfield, "input",2)
   _IEAction($attchmentTextfield,"click")

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-10-24 09:47:13 | 显示全部楼层
ie操作遇到弹窗会阻断了主线程  多进程把 或者直接改file输入框的属性 直接写body
发表于 2014-10-24 09:48:34 | 显示全部楼层
回复 14# komaau3


    怎么直接写body?刚学的。请教···
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-22 06:08 , Processed in 0.085486 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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