seleniunm webdriver + java:文件上传

selenium webdriver没有提供直接的文件上传功能,但是在使用的web项目中常常需要对文件进行上传。在一般的上传中,是需要点击上传按钮,打开本地的window窗口,但是selenium 是无法直接操作window系统自带的相关控件。

以下提供两种关于文件上传的方法。

普通上传:普通的附件上传是将本地文件的路径作为一个值放在input 标签中,通过form 表单将这个值提交给服务器。可以通过sendKeys("文件路径")直接上传。

插件上传:一般是指基于Flash、JavaScript 或Ajax 等技术所实现的上传功能。

seleniunm webdriver + java:文件上传

seleniunm webdriver + java:文件上传

通过这种方法上传,就避免了操作Windows 控件的步骤。如果能找到上传的input 标签,那么基本上就可以通过sendKeys()。


插件上传,可以使用AutoIt 实现上传 编写脚本 来实现。AutoIt  的安装以及使用需要参考AutoIt 使用手册等相关文档。selenium 通过AutoIt 来操作window窗口的操作实质是通过java代码来调用AutoIt 生成的脚本.exe文件。


通过Java调用的exe 程序并不在Java 的可控范围内。换句话说,exe 执行多长时间,执行是否出错,Java 程序都无法得知。


以下是在AutoIt  编辑器中编辑的操作文件上传窗口的代码。

seleniunm webdriver + java:文件上传

以下是java代码

seleniunm webdriver + java:文件上传