2

下面是我的硒代码

selenium.type("document.forms['UploadForm'].elements['browse']",file.getAbsolutePath());
selenium.click("document.forms['UploadForm'].elements['submit']");

我有多个表单,其中有多个属性为“broswe”的浏览按钮和多个属性为提交的提交按钮。因为我使用需要上传文件的表单名称上传文件,即“UploadForm”并且需要以相同的形式提交。

但是我面临的问题是没有上传文件,硒正在点击提交按钮。

下面是自动脚本

WinWaitActive("Choose File")
Send("C:\Work\selenium\PMG_SPRINT_AUTOMATION\pmg_automation\block_PTN.csv")   
Send("{ENTER}")

我如何在我的 selenium 类中调整此代码,因为有多个 selenium 按钮

try {
  String[] commands = new String[]{};
  commands = new String[]{"C:\\Program Files\\AutoIt3\\attachDocScript.exe"}; //location of the autoit executable
  Runtime.getRuntime().exec(commands);
       }
  catch (IOException e) {}
4

3 回答 3

0

您可以使用 Autoit。在那里您可以非常轻松地编写用于上传和下载文档的脚本,然后您可以在需要时在 selenium 代码中调用这些脚本。

于 2012-10-17T10:38:00.823 回答
0

您仅使用正确的逻辑。对于上传文件,您需要在浏览区域中键入内容(文件绝对路径)而不单击该内容,然后单击提交以上传该文件。

即使您有多个浏览按钮,您也可以使用索引或特定定位器来指定一个。

在此处输入图像描述

例如:

selenium.type("//span[@id='attach1']/input","/home/test/file1.csv");
selenium.type("//span[@id='attach2']/input","/home/test/file2.csv");
selenium.type("//span[@id='attach3']/input","/home/test/file3.csv");
.
.
selenium.click("submit");
于 2012-10-17T14:57:51.960 回答
0
  1. 为多个文件上传创建 AutoIT 脚本

    WinWaitActive("Open"); Name of the file upload window
    Send(' C:\Users\himanichaudhary\Desktop\"Capture1.PNG" "stop.jpg" "image3" image4"');
    Send("{ENTER}")
    
  2. 保存并编译脚本以创建“exe”

  3. 在 C# 代码中使用Process.start("D:\\Users\\MultiFileUpload.exe");(AutoIt exe 所在文件的路径为双斜杠格式)。**

    或者

    Runtime.getRuntime().exec("Path of file where autoIt script in exe is located");`
    
于 2018-01-17T11:52:21.543 回答