Selenium 网格执行 - 如何使用 sendkeys 将多个文件一起(一次)上传到网页

Posted

技术标签:

【中文标题】Selenium 网格执行 - 如何使用 sendkeys 将多个文件一起(一次)上传到网页【英文标题】:Selenium grid execution - How to upload multiple files together(at one time) to webpage using sendkeys 【发布时间】:2016-10-28 00:07:52 【问题描述】:

我们在 selenium Grid 上运行 Selenium bdd 场景。浏览器 - chrome 和 OS Windows(用于节点机器) 我们有一个将多个文件上传到网页的场景。 我正在使用以下代码来处理远程执行 -

WebElement El = driver.findElement(By.id("'fileUploadField'"));
((RemoteWebElement) El ).setFileDetector(new LocalFileDetector());
El.sendKeys("<absolute path of files separated by '\n'>");

在本地执行中,如果我们提供由 '\n' 分隔的文件的绝对路径给 'sendkeys' 方法,它会很好地工作。它将所有文件上传到网页。

问题是 - 在 selenium 网格执行中,相同的方法失败,但 selenium 没有显示任何错误。它无法识别文件路径。 我怎样才能让它也可以远程执行? 基本上文件应该通过网格发送到节点机器并上传到网页。 如果我只提供一个文件路径,上面的代码就可以远程执行。

这是 Selenium 的一个开放错误吗?

【问题讨论】:

【参考方案1】:

遗憾的是,selenium 尚不支持多文件上传。首先,它在本地为您工作是一个小奇迹。

【讨论】:

感谢您的回复。是的,如果我们在本地向 chrome 提供由“\n”分隔的文件路径,它可以使用 sendkeys 方法。我认为 RemoteWebElement 实现 sendkeys 方法的方式,这就是罪魁祸首因为它一次只需要一个文件,所以它不能通过网格将一堆文件传输到节点机器

以上是关于Selenium 网格执行 - 如何使用 sendkeys 将多个文件一起(一次)上传到网页的主要内容,如果未能解决你的问题,请参考以下文章

Selenium键盘事件

Instagram登录脚本与selenium,无法执行.send_keys('test')

selenium中send_keys()方法输入中文报错?

Python+selenium+eclipse执行web自动化控件处理

python,selenium如何按回车键

如何在传递到节点之前替换 Selenium 网格中的能力值