selenium-Java实现文件的自动上传功能
来源:互联网 发布:unity3d 插件下载网站 编辑:程序博客网 时间:2024/05/21 13:59
发现之前上传的图崩了,现在已修复。
查看元素属性是否为“input”?
input元素,则按照一般的input元素的sendkeys方法处理
driver.findElement(By.id(“ajax-upload-id-1487848173000”)).sendKeys(“D:\\test.txt”);
sendKeys()方法传参为所上传文件所在路径。
非input元素处理方法,借助AutoIT3工具
下载工具并安装,方法从略,下载地址:https://www.autoitscript.com/
安装成功后,打开需上传文件的页面(不同浏览器窗口title不一样)
Firefox:
IE:
Chrome:
如何用AutoIT3来实现上传呢?
首先打开上传文件所在页面,点击上传,打开本地文件窗口,之后打开安装的AutoIT3文件夹下的AutoIT3_x64.exe或者开始菜单内的Auto Window Info(X64)
打开窗口如下
准备工作已经完毕,现在正式开始操作:
在打开的网页上的本地文档窗口,鼠标选中AutoIt Window Info窗口内的Finder Tool,长按到靶子浮现之后拖动到本地文档窗口“文件名”输入框内,获取文本框的信息。之后重复此动作,获取上传按钮的信息。(AutoIt Window Info窗口内具体信息不再赘述,想了解的小伙伴可以自己去看官方文档)
获取文本框和上传按钮的元素信息后,打开SciTE Script Editor,将以下代码复制粘贴到文本区域。这段代码的用意是首先判断所传参数是否大于1个,之后调用handleUpload函数,函数是先判断进行文件上传的是什么浏览器,之后,根据上一步所采集到的文本框及上传按钮元素属性,实现文件路径的打开“上传”按钮的点击,也就是上传功能的实现。保存生成后缀为.au3的文件,之后打开AutoIT3下的Compile Script To .exe,将生成的.au3文件变异为.exe的可执行文件。
;first make sure the number of arguments passed into the scripts is more than 1If $CmdLine[0]<2 Then Exit EndIf ;if parmas num <2 ,then break;$CmdLine[0] ;参数的数量;$CmdLine[1] ;第一个参数 (脚本名称后面);$CmdLine[2] ;第二个参数;都是从cmd传入参数 handleUpload($CmdLine[1],$CmdLine[2]);定义上传函数,有两个参数,第一个是浏览器名字,第二参数是文件路径 Func handleUpload($browser, $uploadfile) Dim $title ;定义一个title变量 ;根据弹窗的title来判断是什么浏览器 If $browser="ie" Then ; 代表IE浏览器 $title="选择要加载的文件" ElseIf $browser="chrome" Then ; 代表谷歌浏览器 $title="打开" ElseIf $browser="firefox" Then ; 代表火狐浏览器 $title="文件上传" EndIf if WinWait($title,"",4) Then ;等待弹出出现,最大等待时间是4秒 WinActivate($title) ;找到弹出窗口之后,激活当前窗口 ControlSetText($title,"","Edit1",$uploadfile) ;把文件路径放入输入框,此”Edit1“是用FinderTool获取到的 ControlClick($title,"","Button1") ;点击保存或者打开或者上传按钮,此“Button1”使用FinderTool获取到的 Else Return False EndIf EndFunc
接下来该如何在Java代码中来使用我们生成的文件呢,这里要用到lang包下的Runtime类。
这是网上找的这个类的作用,其实简言之就是用这个类来实现cmd命令的效果。
public class Runtime
extends Object
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。
代码如下
Runtime.getRuntime().exec(“d:\\shangchuan\\upload.exe”+ “ ” + “firefox” + “ ” + “d:\\shangchuan\\text.txt”);
执行后,Bingo!成功!!!
- selenium-Java实现文件的自动上传功能
- selenium实现文件上传
- Java实现文件上传功能
- 文件上传功能的实现
- 文件上传功能的实现
- 文件上传功能的实现
- 文件上传功能的实现
- 文件上传功能的实现
- JAVA实现FTP服务器文件的上传,下载,删除功能
- 记录个java大文件上传功能的实现
- Selenium+autoit+java 上传文件
- JAVA实现邮箱上传文件功能
- java web文件上传功能实现
- java实现文件上传ftp服务器功能
- JAVA使用HttpUrlConnection实现自动上传文件
- JAVA使用HttpUrlConnection实现自动上传文件
- 利用Selenium实现图片文件上传的两种方式
- 利用Selenium实现文件上传的AutoIt介绍
- 配置java环境变量
- 生成自动判别类型的Vector
- 关于xcode 版本更新 一直显示在处理中的问题
- andriod显示录制视频的简单dome
- Git——初始版本控制工具
- selenium-Java实现文件的自动上传功能
- Java中Heap与Stack的区别
- 字体
- ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) C. Molly's Chemicals
- AS小技巧「Extract Resource」快捷提取字符串
- HTML中显示特殊字符,如尖括号 “<”,">"等等
- 浅谈Java中的equals和==
- 前端之echarts与highcharts的使用
- ionic 环境搭建