使用autoit从firefox下载文件

时间:2014-04-25 07:05:33

标签: autoit

我尝试使用Firefox 28.0中的Autoit下载文件。

我尝试下载一个exe文件,弹出闪烁,但自动窗口信息工具无法识别保存按钮。

我该如何自动化呢。

enter image description here

我的脚本看起来像

Local $hWnd=WinActivate("[CLASS:MozillaDialogClass]")
WinWaitActive($hWnd)
;MsgBox(1,$hWnd,$hWnd)
;ControlClick($hWnd,"","Save")
ControlClick($hWnd,"&Save File","")
;WinClose("[CLASS:MozillaDialogClass]")

我该如何自动化......

3 个答案:

答案 0 :(得分:0)

目前您的ControlClick次尝试都不正确。正确的语法是ControlClick(Window title or handle, *window* text, control *id*, ...)。查看帮助文件和示例,以查看您当前没有做的事情。

firefox下载对话框有点棘手,谷歌搜索为尝试做同样事情并且努力的人们提供了很多结果。

最简单的方法是单击按钮坐标处的窗口。 ControlClick可以用于此(只需将控件ID留空)。当您尝试选择按钮的位置时,AutoIt窗口信息工具应该提供ControlClick坐标。

该方法确实假设按钮总是在同一个地方,但情况不一定如此。替代方法是使用ControlSend发送Alt+S组合(或该按钮的任何组合)。

最后,值得一提的是the IUIAutomation framework,它已经证明对于使用标准winapi控件的窗口自动化非常可靠。

答案 1 :(得分:0)

最简单的方法是在mozilla上执行以下操作:

autoit.au3文件

上使用以下代码
  1. ControlFocus(" MozillaDialogClass","","")

  2. 睡眠(10)

  3. 发送(" {ENTER}&#34)

  4. 使用以下命令在selenium中执行相同的文件:

    Runtime.getRuntime().exec("C:\\Users\\Balaji\\Desktop\\autoit.exe");
    

答案 2 :(得分:0)

使用以下代码使用AutoIt在Firefox中下载文件。

WinWait("[TITLE:Opening ; CLASS:MozillaDialogClass]","", 10)

If WinExists("[TITLE:Opening ; CLASS:MozillaDialogClass]") Then

    ; Perform keyboard ALT key + s key to select Save File Radio button using keyboard shortcut.    
    ControlFocus ( "[TITLE:Opening ; CLASS:MozillaDialogClass]","", "" )    
    Send("!s")

    ; Wait for 2 seconds    
    Sleep(2000)

    ; Press Keyboard ENTER button.    
    Send("{ENTER}")

EndIf