我知道这个主题是重复的,但我也应用了其他解决方案,结果我遇到了将正确的密钥发送到文件上传窗口的正确位置的问题。
我已经使用这段代码打开并将密钥发送到上传文件:
WebElement fileInput = driver.findElement(By.id("upload-resume-button"));
fileInput.sendKeys("C:/Users/EvrenosCareer/Desktop/filename.pdf");
通过发送键,正确的按钮被激活,文件上传窗口按预期打开,但键被发送为其他内容,它出现在浏览器的左下角;不是文件上传窗口。请查看此链接,5秒视频,以确切了解我所说的内容:https://evrenos-hotmail.tinytake.com/sf/MTcxNDY0N181Njg2OTY1
答案 0 :(得分:0)
如果元素类型为“file”,您可以直接执行 fileInput.sendKeys(“C:/Users/EvrenosCareer/Desktop/filename.pdf”),否则您必须上传文件使用机器人类。您无需单击 fileInput 即可在该元素上发送密钥。
通过Robot类上传文件:
WebElement element = driver.findElement(By.id("upload-resume-button"));
element.click();
StringSelection stringSelection = new StringSelection("path to File");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);