自动将文件上传到站点,而无需浏览器

时间:2018-10-18 11:55:02

标签: java selenium selenium-webdriver headless katalon-studio

我使用测试脚本来自动将文件上传到站点并以无头模式执行脚本。它需要一张一张地上传文件列表,我基于Selenium WebDriver开发它。我使用AutoIT脚本来处理对话框窗口,文件选择器窗口。参数$CmdLine[1]包含实际文件的路径。

ControlFocus("Open a file","","Edit1")
ControlSetText("Open a file","","Edit1", $CmdLine[1])
ControlClick("Open a file","","Button1")

使用以下代码执行:

Runtime.getRuntime().exec(autoITExecutable);

它将打开对话框窗口,因此如果不关注浏览器窗口就无法工作。 java.awt.Robot类的工作原理类似,它需要关注浏览器窗口。

我也尝试使用sendKeys()方法,但是输入字段无法以这种方式处理文件。 Katalon Studio也无法处理此字段。

具有类似形式的示例网站:

http://ajaxuploader.com/demo/simple-upload.aspx

https://ec.europa.eu/cefdigital/DSS/webapp-demo/validation

https://tus.io/demo.html

3 个答案:

答案 0 :(得分:1)

您可以尝试以下代码:

HelloWorld.vue

答案 1 :(得分:1)

尝试一下,

webElement.sendKeys(System.getProperty("user.dir") + "file path");

在这里

  • webElement是标识用于文件上传的元素。请确保输入元素可见。
  • 尝试将文件路径指定为我们要上传的内容的相对路径。

请确保您没有单击浏览按钮,单击浏览按钮将打开Windows对话框,其中硒webDriver将不起作用。

答案 2 :(得分:0)

直接使用硒:

Sub StartMeasButton_Click() MySubRoutine End Sub Sub MySubRoutine() 'put the body of your click routine here End Sub Sub Form1_Initialise MySubRoutine 'effectively the same as clicking the button End Sub

这样可以避免使用系统依赖对话框。