【发布时间】:2017-01-24 17:01:49
【问题描述】:
我正在尝试将本地文件 (C:\sample.txt) 上传到我的服务器。我已经尝试使用 Chrome 网络驱动程序来实现这一点,并且它工作得非常好。 但是在使用 HTMLUnitDriver 实现相同的过程中,我无法从本地磁盘浏览文件项。我也尝试了以下两种方法,
1) 发送密钥:
WebElement inputFile = driver.findElement(By.id("file"));
System.out.println(driver.getCurrentUrl());
LocalFileDetector detector = new LocalFileDetector();
String path = "C:\\UploadSample1.txt";
File f = detector.getLocalFile(path);
inputFile.sendKeys(f.getAbsolutePath());
2) 使用机器人:
WebElement browseFile = fluentWait(By.id("browseFile"), driver);
browseFile.click();
File file = new File("C:\\UploadSample1.txt");
driver.switchTo().activeElement();
StringSelection fileNameToWrite = new StringSelection(
file.getAbsolutePath());
Toolkit.getDefaultToolkit().getSystemClipboard()
.setContents(fileNameToWrite, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
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);
我需要浏览文件项,然后只有我可以将其保存到我的服务器。因为只是发送文件路径将在服务器磁盘中搜索文件。现在我真的被困住了,不能再进一步了。
非常感谢任何帮助。谢谢!
【问题讨论】:
标签: javascript java selenium servlets htmlunit-driver