我在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'
答案 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)
您可以使用包含IniRead
和IniWrite
功能的ini文件
文件看起来像:
[SectionName]
KeyName1 =值
KeyName2 =值
你在文件中读到:
IniRead('nom_fichier.ini', 'SectionName', 'KeyName1', 'Default Value')