使用 Selenium-WebDriver 通过 AutoIt 上传多个文件

Multiple file upload through AutoIt using Selenium-WebDriver

我使用 AutoIt 自动上传单个文件。现在,我正在尝试一次上传 多个文件 。但是,没有任何选择可以达到目的。以下是我尝试过的一些方法:

  1. Runtime.getRuntime().exec(ARRAY<Filenames>)

  2. 尝试作为一个字符串传递。通过手动文件系统,这工作正常,但在自动显示为无效文件名时:

    Runtime.getRuntime().exec("E:/AutoItScripts/FileUpload.exe" + ""E:\Images\business.jpg" "E:\Images\nature.jpeg"");
    

请提供solutions/recommendations/suggestions解决问题。

您需要使用所需的 AutoIt 脚本一次上传多个文件。多文件上传参考以下脚本。

ControlFocus("Open","","Edit1")
Global $files="",$appendquotes="",$j=2;
IF $cmdLine[0]==1 then
    $files=$CmdLine[1]
 ElseIf $cmdLine[0] > 1 Then
   For $i=1 to $cmdLine[1]
       $appendquotes='"' & $CmdLine[$j] & '"';
       $files=$files & " " & $appendquotes;
       $j=$j+1;
    Next
EndIf
ControlSetText('Open','','Edit1',$files)
ControlClick("Open","","Button1")

使用下面的 java 代码进行多文件上传

Runtime.getRuntime().exec(config.getAutoITFileUploadScript() + " " + files.length + " " + fileToUpload);

这里,第一个参数是我们给的脚本的.exe文件路径。 第二个参数是我们要传递的文件数。 第三个参数是文件的路径,其中每个文件都用双引号括起来,用单个 space 分隔。(即)

"D:\karthika\uploadfiles\SampleJPGImage_5mbmb.jpg" "D:\karthika\uploadfiles\SamplePNGImage_5mbmb.png" "D:\karthika\uploadfiles\samplefile.png" "D:\karthika\uploadfiles\SamplePNGImage_3mbmb.png" "D:\karthika\uploadfiles\img16.jpg" "D:\karthika\uploadfiles\artwork.jpg" "D:\karthika\uploadfiles\image2.jpg" "D:\karthika\uploadfiles\image3.jpg" "D:\karthika\uploadfiles\image5.jpg"