如何在AutoIT脚本中调用属性中的值?

时间:2016-03-17 04:31:28

标签: selenium autoit

我在AutoIT中有脚本(用于处理selenium中的上传文件窗口)

    WinWaitActive("File Upload")
    Send("C:\Users\XXX\Desktop\Folder1\MyFile.xlsx")
    Send("{ENTER}")

我想从属性文件中获取路径名,而不是硬编码路径名。(明天我们不要触摸AutoIT脚本来修改路径名)。

有没有办法这样做?

更新1: java代码:

Runtime.getRuntime().exec(TestUtility.properties.getProperty("test.all.autoit.testdata"));
Thread.sleep(8000);

AutoIT代码:

WinWaitActive("File Upload")
Send($CmdLine[1])
Send("{ENTER}")

Cmd行:

c:>java -jar pathToJar.jar pathToProperties.properties pathToFileUpload.xlsx

Properties档案:

test.all.autoit.testdata='C:\\XX\\XX\\XX\\someFolder\\ListUploadScript.exe'

2 个答案:

答案 0 :(得分:1)

我所做的是AutoIt脚本可以接受用于调用的命令行参数,因此我的Java测试用于从属性文件中读取该属性,然后当我调用AutoIt脚本时,我使用属性作为命令行选项调用它AutoIt脚本并接受AutoIt脚本中的命令行参数作为要上载的文件的路径。如果这对您有用,请告诉我!
此外,如果您的上传按钮是输入类型,则无需使用AutoIt ..directly async Task<String> RunAsync() { using(var client = new HttpClient()) { // Doing some Work without blocking UI. // Here i want to call my main thread delegate function del(jsonString); } } 应该工作
示例代码:

element.sendKeys(<Path to upload file>)

此处WinActivate("File Upload") WinWaitActive("File Upload") Send($CmdLine[1]) Send("{Enter}") 接受传递的第一个命令行参数。因此,在调用此脚本(.exe)时,请以这种方式调用它。

$CmdLine[1]

其中path是您要上传的文件的路径。 我假设你已经知道何时调用你的AutoIt脚本:D
EDIT1:$ CmdLine [0]保留用于获取传递给autoit脚本的命令行参数的数量。所以实际参数以$ CmdLine [1]开头,这是在命令行上传递的第一个参数。
EDIT2:我假设您是从主方法运行的,如果是这样,那么执行autoIt脚本的调用应该是这样的:Runtime.getRuntime().exec("src/test/resources/fileupload.exe "+path); 其中args [0]是args数组作为参数传递给main方法,其第0个索引具有您希望传递的excel表。您还需要传递Excel电子表格的绝对路径。

答案 1 :(得分:0)

您可以使用包含IniReadIniWrite功能的ini文件

文件看起来像:

  

[SectionName]

     

KeyName1 =值

     

KeyName2 =值

你在文件中读到:

IniRead('nom_fichier.ini', 'SectionName', 'KeyName1', 'Default Value')