selenium实现文件上传

来源:互联网 发布:windows old有什么用 编辑:程序博客网 时间:2024/05/17 13:39

一、直接利用selenium实现

当上传的标签使用的是input,type=“file”时,直接使用selenium的api就可以处理上传操作(使用元素对象的sendKeys()方法);

同时当input type='file' 加了样式被“美化”没了,直接sendkey不行的时候,在sendkeys之前,用javascript把它给弄出来:



下面是用selenium的api操作上传

 

二、利用autoit工具实现

有的控件不是使用input标签标记的,这个时候利用selenium自带的api就没有办法实现上传操作了,这个时候我们可以考虑使用autoit这个工具来帮助我们实现上传功能,先介绍一下,什么是autoit,它是使用类似BASIC脚本语言的免费软件,可以用于对windows GUI进行自动化操作和脚本的编写。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。


1、autoit的下载和安装

  • 下载并安装AutoIT,下载链接:https://www.autoitscript.com/site/autoit/
  • AutoIT安装成功后,可以在开始菜单下看到AutoIT的所有工具,如下图所示:
  •     
  •  其中分为几类,AutoIT Window Info用来识别Windows控件,根据识别的控件信息编写脚本;Complie Script to .exe,用来将利用AutoIt编写的脚本,编译成可执行文件;Run Script 用来执行AutoIT的脚本信息;SciTE Script Editor用来编写AutoIt脚本。
  • 接下来就是利用以上四种工具,来编写AutoIT脚本,然后编译成可执行文件

 2、AutoIt Window Info 的使用

1.打开Auto window Info工具,该工具中主要使用“Finder Tool”功能用于选择需要识别的控件,然后控件的相关信息会显示在显示区。


 2.打开QQ=》头像设置=》上传照片=》弹出windows窗口



3.点击Finder Tool,拖放到“文件上传”的“文件名输入框”上,注意:这里Finder Tool是用拖放的,这个时候的“Auto window Info”工具显示如下,图中标记出来的都是控件重要的识别信息。 


 3、SciTE Script Editor 使用

根据以上所识别的空间信息,利用此编辑器,利用此软件根据AutoIT的语法编写脚本。

     附实现文件上传需要的几个方法:  

    ControlFocus ( "窗口标题", "窗口文本", 控件ID)   设置输入焦点到指定窗口的某个控件上

    WinWait ( "窗口标题" [, "窗口文本" [, 超时时间]] )  暂停脚本的执行直至指定窗口存在(出现)为止

    ControlSetText ( "窗口标题", "窗口文本", 控件ID, "新文本" )   修改指定控件的文本

    Sleep ( 延迟 )   使脚本暂停指定时间段

    ControlClick ( "窗口标题", "窗口文本", 控件ID [, 按钮] [, 点击次数]] )   向指定控件发送鼠标点击命令

    其中,title即AutoIt Window Info识别出的Title字段,controlID即AutoIt Window Info识别出的Class和Instance的拼接,如上图拼接后的结果应为:Button1


开始菜单=》SciTE Script Editor=》编辑=》保存=》f5运行 

 4、Compile Script to .exe 使用

选择需要转换的script脚本,指定exe文件的输出地址(默认为Script的目录),点击“Convert”按钮完成转换。转换完成之后可以直接双击.exe文件进行运行。 


 5、.java调用exe文件

调用代码如下:



原创粉丝点击