无需浏览器即可自动将文件上传到网站

pla*_*irt 8 java selenium headless selenium-webdriver katalon-studio

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

ControlFocus("Open a file","","Edit1")
ControlSetText("Open a file","","Edit1", $CmdLine[1])
ControlClick("Open a file","","Button1")
Run Code Online (Sandbox Code Playgroud)

它使用以下代码执行:

Runtime.getRuntime().exec(autoITExecutable);
Run Code Online (Sandbox Code Playgroud)

它会打开对话框窗口,因此如果不关注浏览器窗口就无法工作.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

Tho*_*per 0

直接使用Selenium:

driver().findElement(By.id("ContentPlaceHolder1_Uploader1__Insert")).sendKeys(pathToFile);

这样您就可以避免使用系统相关对话框。