繁体   English   中英

使用Selenium Webdriver上传文件而无需使用Robot API或Selenium命令发送密钥

[英]Upload a file using selenium webdriver WITHOUT using Robot API or selenium command send keys

我有一个Web应用程序正在使用Outsystem for UI。 因此,“文件上传”按钮的类型为“提交”,而不是类型为“文件”,因此是硒代码

    driver.findElement(By.id("browse")).sendKeys("/path/to/the/file");

用于上传文件的文件不适用于我。 我也尝试了机器人API的代码

WebElement ele = driver.findElement(By.id("Browse"));
ele.click();    
StringSelection ss = new StringSelection(FilePath); 
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, 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);
Thread.sleep(500);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);    

有时效果很好,但是大多数时候都失败了,因为焦点已从窗口移开了。 我的脚本将运行很长时间,在这种情况下,始终将焦点始终放在窗口上是不可行的。 有人可以建议我其他方法来解决Selenium中的上传文件过程吗?

我在这里了解到的是您无法等到弹出窗口弹出时出现,因为我们无法明确等待窗口弹出,因此在启动机器人之前,我通过放置Thread.sleep(2000)解决了此问题类,以便可以在我们开始使用它之前显示弹出窗口。

暂无
暂无

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

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