如何从 AutoIT 脚本中的属性调用值?
How to call value from properties in AutoIT script?
我在 AutoIT 中有脚本(用于在 selenium 中处理上传文件 window)
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'
我所做的是 AutoIt 脚本可以接受用于调用的命令行参数,所以我的 Java 测试用于从属性文件中读取 属性 然后当我调用 AutoIt 脚本时我调用它使用 属性 作为 AutoIt 脚本的命令行选项,并接受 AutoIt 脚本中的命令行参数作为要上传的文件的路径。如果这对你有用,请告诉我!!!
此外,如果您的上传按钮是输入类型,则无需使用 AutoIt..直接 element.sendKeys(<Path to upload file>)
应该可以工作
示例代码:
WinActivate("File Upload")
WinWaitActive("File Upload")
Send($CmdLine[1])
Send("{Enter}")
此处$CmdLine[1]
接受传递的第一个命令行参数。所以在调用此脚本 (.exe) 时以这种方式调用它。
Runtime.getRuntime().exec("src/test/resources/fileupload.exe "+path);
其中路径是您要上传的文件的路径。
我假设您已经知道何时调用您的 AutoIt 脚本 :D
EDIT1:$CmdLine[0] 保留用于获取传递给 autoit 脚本的命令行参数的数量。因此实际参数以 $CmdLine[1] 开头,这是命令行上传递的第一个参数。
EDIT2:我假设你是 运行 来自 main 方法,如果是这样那么你执行 autoIt 脚本的调用应该是这样的:Runtime.getRuntime().exec(TestUtility.properties.getProperty("test.all.autoit.testdata")+" "+args[0]);
其中 args[0] 是作为参数传递给 main 方法的 args 数组,其第 0 个索引具有您希望传递的 excel sheet。您还需要传递 excel spreadsheet.
的绝对路径
您可以将 ini 文件与 IniRead
和 IniWrite
函数一起使用
文件看起来像:
[SectionName]
KeyName1=Value
KeyName2=Value
然后你读入了文件:
IniRead('nom_fichier.ini', 'SectionName', 'KeyName1', 'Default Value')
我在 AutoIT 中有脚本(用于在 selenium 中处理上传文件 window)
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'
我所做的是 AutoIt 脚本可以接受用于调用的命令行参数,所以我的 Java 测试用于从属性文件中读取 属性 然后当我调用 AutoIt 脚本时我调用它使用 属性 作为 AutoIt 脚本的命令行选项,并接受 AutoIt 脚本中的命令行参数作为要上传的文件的路径。如果这对你有用,请告诉我!!!
此外,如果您的上传按钮是输入类型,则无需使用 AutoIt..直接 element.sendKeys(<Path to upload file>)
应该可以工作
示例代码:
WinActivate("File Upload")
WinWaitActive("File Upload")
Send($CmdLine[1])
Send("{Enter}")
此处$CmdLine[1]
接受传递的第一个命令行参数。所以在调用此脚本 (.exe) 时以这种方式调用它。
Runtime.getRuntime().exec("src/test/resources/fileupload.exe "+path);
其中路径是您要上传的文件的路径。
我假设您已经知道何时调用您的 AutoIt 脚本 :D
EDIT1:$CmdLine[0] 保留用于获取传递给 autoit 脚本的命令行参数的数量。因此实际参数以 $CmdLine[1] 开头,这是命令行上传递的第一个参数。
EDIT2:我假设你是 运行 来自 main 方法,如果是这样那么你执行 autoIt 脚本的调用应该是这样的:Runtime.getRuntime().exec(TestUtility.properties.getProperty("test.all.autoit.testdata")+" "+args[0]);
其中 args[0] 是作为参数传递给 main 方法的 args 数组,其第 0 个索引具有您希望传递的 excel sheet。您还需要传递 excel spreadsheet.
您可以将 ini 文件与 IniRead
和 IniWrite
函数一起使用
文件看起来像:
[SectionName]
KeyName1=Value
KeyName2=Value
然后你读入了文件:
IniRead('nom_fichier.ini', 'SectionName', 'KeyName1', 'Default Value')