如何使用selenium上传文件

时间:2012-10-17 09:26:00

标签: selenium selenium-rc selenium-ide

以下是我的硒代码

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

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

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

以下是自动脚本

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) {}

3 个答案:

答案 0 :(得分:0)

你可以使用Autoit.There你可以很容易地编写上传和下载文件的脚本,然后你可以在任何需要的地方用你的selenium代码调用这些脚本。

答案 1 :(得分:0)

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

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

enter image description here

例如:

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");

答案 2 :(得分: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");`