我尝试使用代码上传照片
driver.findElement(By.xpath("xpath")).sendKeys("C:\\Users\\path\\ben.jpg");
但图片没有上传。
上传按钮的html是
<button id="upfile1" class="buttonclass" style="cursor: pointer" type="button"> Choose Photo</button>
还有其他方法可以上传图片。我也尝试过使用WebElement。我需要JAVA的解决方案。
答案 0 :(得分:1)
我能够使用
完成driver.findElement(By.id("upfile1")).click();
Thread.sleep(2000);
StringSelection ss = new StringSelection("C:\\Users\\logo1.jpg");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
但除了使用机器人之外,还有其他任何简单方法可以实现吗?
答案 1 :(得分:0)
添加System.Windows.Forms参考并尝试以下代码。
driver.findElement(By.Id("upfile1")).Click();
System.Windows.Forms.SendKeys.SendWait("C:\\Users\\path\\ben.jpg");
System.Windows.Forms.SendKeys.SendWait("{ENTER}");
答案 2 :(得分:0)
出现的弹出窗口是一个窗口。它应该使用AutoIT来处理。
答案 3 :(得分:0)
如果您使用RemoteWebDriver
,则需要先使用LocalFileDector
将文件上传到远程selenium服务器。然后使用远程路径从远程selenium服务器上传。
driver.setFileDetector(new LocalFileDetector());
driver.findElement(By.xpath("xpath")).sendKeys("C:\\Users\\path\\ben.jpg");