无法使用标题的类来使用AutoIt自动执行Windows文件上载

时间:2015-06-02 16:36:00

标签: automation autoit

我正在尝试使用AutoIt进行Windows文件上传。我点击了一个浏览按钮,它将打开文件上传弹出窗口。我希望AutoIt键入文件的位置,然后单击“打开”。

我需要使用FF,Chrome和IE进行测试。如果我使用Title,我可以让它工作,但问题是每个浏览器都有不同的标题。我想使用类,因为它是所有浏览器的#32700。我尝试使用类而不是标题,但它不起作用。

当我使用标题时,一切正常。以下是Firefox的示例。在此脚本中,输入文件名并单击打开。

ControlFocus("File Upload","","Edit1")
ControlSetText("File Upload", "", "Edit1", "SomeFile.txt")
ControlClick("File Upload", "","Button1");

当我尝试使用类时,没有输入文本,也没有点击打开按钮。 AutoIt脚本编辑器中没有错误,所以我不确定为什么这不起作用。

ControlFocus("[CLASS:#32770]","","Edit1")
ControlSetText("[CLASS:#32770]", "", "Edit1", "SomeFile.txt")
ControlClick("[CLASS:#32770]", "","Button1");

我还尝试将所有三个浏览器标题添加到1个AutoIt脚本中。以下脚本适用于Firefox和IE,但在Chrome中没有任何功能。

Local $OrgFile = "SomeFile.csv"
Local $ControlIDText = "Edit1"
Local $ControlIDButton = "Button1"
Local $Title_FF = "File Upload"
Local $Title_Chrome = "Open"
Local $Title_IE = "Choose File to Upload"

;Firefox Import
ControlFocus($Title_FF,"",$ControlIDText)
ControlSetText($Title_FF, "", $ControlIDText, $OrgFile)
ControlClick($Title_FF, "",$ControlIDButton);

;Chrome Import
ControlFocus($Title_Chrome,"",$ControlIDText)
ControlSetText($Title_Chrome, "", $ControlIDText, $OrgFile)
ControlClick($Title_Chrome, "",$ControlIDButton);

;IE Import
ControlFocus($Title_IE,"",$ControlIDText)
ControlSetText($Title_IE, "", $ControlIDText, $OrgFile)
ControlClick($Title_IE, "",$ControlIDButton);

1 个答案:

答案 0 :(得分:1)

如果要使用高级标题匹配(例如CLASS),则需要将WinTitleMatchMode选项设置为4.

#RequireAdmin ;Will give your script a permission elevation (sometimes its needed)
Opt("WinTitleMatchMode", 4) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("WinSearchChildren", 1) ;0=no, 1=search children also

ControlFocus("[CLASS:#32770]","","Edit1")
ControlSetText("[CLASS:#32770]", "", "Edit1", "SomeFile.txt")
ControlClick("[CLASS:#32770]", "","Button1");