使用WebDriver Extensions在网格上上传文件

时间:2018-04-19 08:21:08

标签: java selenium selenium-grid

你好我试图使用WebDriver扩展来获取selenium,但是,试图上传一个文件即将成为unstuck。本地文件通过使用机器人上传,例如:robot.keyPress(KeyEvent.VK_ENTER);

然而,在网格上,机器人没有按预期工作。如何使用带有WebDriver扩展名的Selenium将文件上传到webapp?

1 个答案:

答案 0 :(得分:0)

我希望您尝试将文件从本地计算机上传到应用程序? 您正在触发的机器人命令将应用于运行脚本的机器(执行java的机器),它们不会传递给节点机器。

  

来自文档:   您需要做的就是使用sendKeys命令在任何文件字段中键入文件的本地路径。这就像所有司机的魅力一样。将此测试移动到远程服务器(例如,我们的Selenium 2 Cloud)时,您需要做的就是使用setFileDetector方法让WebDriver知道您将文件从本地计算机上传到远程服务器服务器,而不只是键入路径。几乎神奇的是,在编写固定的远程路径之前,文件将进行base64编码并透明地通过JSONWireProtocol发送。

driver.setFileDetector(new LocalFileDetector());
...
WebElement upload = driver.findElement(By.id("fileupload"));
upload.sendKeys("/path/to/file.jpg");
driver.findElement(By.id("upload")).click();

See the tutorial