繁体   English   中英

使用webdriver上传文件

[英]Upload file using webdriver

我尝试使用代码上传照片

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解决方案。

我能够使用

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

但是,除了使用机器人之外,还有其他简单的方法可以实现相同目的吗?

添加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}");

出现的弹出窗口是一个Windows窗口,应使用AutoIT处理。

如果使用RemoteWebDriver ,则需要使用LocalFileDector首先将文件上传到远程RemoteWebDriver服务器。 然后使用远程路径从远程Selenium服务器上载。

driver.setFileDetector(new LocalFileDetector());
driver.findElement(By.xpath("xpath")).sendKeys("C:\\Users\\path\\ben.jpg");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM