如何使用Selenium WebDriver - Java处理Firefox上传文件窗口

时间:2017-06-21 13:55:14

标签: java selenium selenium-webdriver file-upload selenium-firefoxdriver

我知道这个主题是重复的,但我也应用了其他解决方案,结果我遇到了将正确的密钥发送到文件上传窗口的正确位置的问题。

我已经使用这段代码打开并将密钥发送到上传文件:

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

1 个答案:

答案 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);