3 回答
TA贡献1875条经验 获得超5个赞
它不起作用,因为您正在使用一个Robot
类,这对于无头执行来说并不理想,因为浏览器无论如何都不可见。
确保您的上传元素可见。
之后,您使用以下内容上传:
driver.findElement(By.id("uploadElement")).sendKeys("path/to/file");
TA贡献1865条经验 获得超7个赞
AutoIt
您可以使用它的编辑器在 selenium 中上传文件
1.您需要安装Autoit
及其脚本编辑器
我已经分享了链接,您可以下载并使用它
https://www.autoitscript.com/site/autoit/downloads/
您需要创建 autoit 文件并需要传递文件位置和一些脚本,并根据需要命名文件,就像我给 File Upload.au3 一样,.au3 扩展名是自动的
ControlFocus("Open","","Edit1") ControlSetText("Open","","Edit1","E:\AutoIT\id.pdf") ControlClick("Open","","Button1")
您需要右键单击文件upload.au3文件并对其进行编译,然后它将创建执行文件File Upload.exe
然后您需要在 selenium 中指定您需要在单击上传按钮后执行和上传文件的位置,就像在我的项目中一样,我正在使用执行此文件
Runtime.getRuntime().exec(Globals.PROG_FILEUPLOAD);
Global.PROG_FILEUPLOAD
File Upload.exe 的路径在哪里
PROG_FILEUPLOAD= "E:/AutoIT/File Upload.exe"
我还分享了链接供您参考,如果您有任何疑问,可以使用
https://www.guru99.com/use-autoit-selenium.html
TA贡献1799条经验 获得超8个赞
使用以下代码以无头模式上传文件:
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
WebDriver driver = new ChromeDriver(options);
driver.get("http://nervgh.github.io/pages/angular-file-upload/examples/simple/");
driver.findElement(By.xpath("(//input[@uploader='uploader'])[2]")).sendKeys("C:\\NotBackedUp\\Python\\selenium-2.7.0\\py\\selenium\\selenium.py");
// Then click on some upload button
在 sendKeys() 方法中给出要上传的文件的确切完整路径。
添加回答
举报