Java 使用SeleniumWebDriver上传文件

Java 使用SeleniumWebDriver上传文件,java,selenium-webdriver,Java,Selenium Webdriver,我们如何通过自动化在UI上上传jpeg 目前,我已将该图像放置在我的回购协议的参考资料下,我正在执行以下代码 WebElement element = driver.findElement(By.id("mypicId")); File file = new File(ClassLoader.getSystemResource("test.jpg").toURI()); element.sendKeys(file.getAbsolutePath()); 我要向其发送文件的元素是 我期待文件上传

我们如何通过自动化在UI上上传jpeg

目前,我已将该图像放置在我的回购协议的参考资料下,我正在执行以下代码

WebElement element = driver.findElement(By.id("mypicId"));
File file = new File(ClassLoader.getSystemResource("test.jpg").toURI());
element.sendKeys(file.getAbsolutePath());
我要向其发送文件的元素是

我期待文件上传,但我得到以下错误
java.util.concurrent.ExecutionException:org.openqa.selenium.WebDriverException:无效参数:找不到文件:test.jpg

谢谢,但我仍然收到相同的错误。我尝试使用chrome 69以及java.util.concurrent.ExecutionException:org.openqa.selenium.WebDriverException:无效参数:未找到文件:(会话信息:chrome=78.0.3904.70)(驱动程序信息:chromedriver=78.0.3904.70(edb9c9f3de0247fd912a77b7f6cae7447f6d3ad5参考文件/分支机构负责人/3904@{800}),平台=Windows NT 10.0.10586 x8664)(警告:服务器未提供任何stacktrace信息)命令持续时间或超时:196毫秒生成信息:版本:“2.52.0”,修订版:“4C2593CFC3689A7FCD7BE5249167E5CCC93AD28”,它表示找不到文件。请回复文件与Src文件夹的相关位置。确定,当我发送密钥时,它将调用this.fileDetector.getLocalFile(KeysSend)并调用下面的类。它总是返回null?公共类UselessFileDetector实现FileDetector{public UselessFileDetector(){}公共文件getLocalFile(CharSequence…keys){返回null;}这是在本地运行还是在网格中运行?有没有其他方法可以使用不同的浏览器?我尝试了与上面相同的代码,唯一的问题是它在网格中运行并且找不到文件,当我在本地尝试时,它工作了。
driver.setFileDetector(new LocalFileDetector());

WebElement element = driver.findElement(By.id("mypicId"));
File file = new File(System.getProperty("user.dir") + "/src/java/resources/test.jpg"));
//or


// File file = new File(System.getProperty("user.dir") + "/src/test/resources/test.jpg"));
element.sendKeys(file.getAbsolutePath());