Selenium2(java)selenium常用API 五
上传文件
元素标签是input时上传方式
上传是一个input,对于这种元素是input
的标签可以采用元素的sendKeys()方法来直接赋值,upload.html代码:
<html>
<head></head>
<body>
<input type="file" id="fileControl" value="选择文件">
</body>
<style type="text/css" id="1"></style>
</html>
具体代码:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Upload1 {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
//打开上传的网页 - get中输入upload的地址
driver.get("D:\\Work\\eclipse_workspace\\seleniumdemo\\res\\upload.html");
WebElement e1 = driver.findElement(By.id("fileControl"));
//输入要上传文件的地址
e1.sendKeys("D:\\Work\\eclipse_workspace\\seleniumdemo\\res\\被上传的文件.txt");
try {
//等待2秒观察显示
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit();
}
}
使用autoit脚本上传方式
它是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。
autoit安装包地址链接: http://pan.baidu.com/s/1dDL5Qhz 密码: yew5
二进制文件安装即可,打开autoit,主界面如下:

具体使用:
拖动Finder Tool到要定位到的弹窗上

获取到文件名输入框的classname

获取到打开按钮的classname
根据获取到的值编写autoit的脚本:
;fisrt make sure the number of arguments passed into the script is more than 1
If $CmdLine[0]<2 Then Exit ElseIf; 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;代表chrome浏览器
$title="选择要加载的文件"
ElseIf $browser = "chrome" Then;
$title="打开"
ElseIf $browser="firefox" Then
$title="文件上传"
EndIf If WinWait($title,"",4) Then;等待弹窗出现,最大等待时间是4s
WinActivate($title);找到弹窗之后,激活当前窗口
ControlSetText($title,"","Edit",$uploadfie);把文件路径放入输入框
ControlClick($title,"","Button");点击保存或者打开或者上传按钮
Else
Return False
EndIf
EndFunc
文件保存为upload.au3,将文件转换成exe可执行文件
安装目录下的C:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe_x64.exe

生成文件upload.exe
打开cmd,输入:"C:\Users\Administrator\Desktop\upload.exe" "firefox" "C:\Users\Administrator\Desktop\image.jpg" 双引号不要省略
在selenium中调用脚本,封装成一个执行这个exe文件的方法:
/**
*上传文件,需要点击弹出上传的窗口
*
*@param browser
*使用的浏览器名称
*@param file
*需要上传的文件及文件名
*/
public void handleupload(String browser, File file) {
String filepath = file.getAbsolutePath();
String executeFile = "C:\Users\Administrator\Desktop\upload.exe";//定义了upload.exe文件的路径
String cmd = "\"" + executeFile + "\"" + " " + "\"" + browsser + "\"" + " " + "\"" + filePath + "\"";
try {
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
} catch(Exception e) {
e.printStackTrace();
}
}
具体步骤是:先去用selenium点击上传文件按钮,之后会弹出上传文件输入框,最后执行上面那个public void handleUpload(String browser, File file)方法即可。
Selenium2(java)selenium常用API 五的更多相关文章
- java selenium常用API(WebElement、iFrame、select、alert、浏览器窗口、事件、js) 一
		
WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.clic ...
 - java selenium常用API汇总
		
(WebElement.iFrame.select.alert.浏览器窗口.事件.js) 一 WebElement相关方法 1.点击操作 WebElement button = driver. ...
 - Selenium Web 自动化 - Selenium常用API
		
Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作 1.1 用webdriver打开一个浏览器 1.2 最大化浏览器&关闭浏览器 ...
 - 详解介绍Selenium常用API的使用--Java语言(完整版)
		
参考:http://www.testclass.net/selenium_java/ 一共分为二十个部分:环境安装之Java.环境安装之IntelliJ IDEA.环境安装之selenium.sele ...
 - Selenium常用API的使用java语言之5-selenium元素定位
		
1.selenium定位方法 Selenium提供了8种定位方式. id name class name tag name link text partial link text xpath css ...
 - Java 之常用API(一)
		
常用API 1 API概述 2 Scanner类与String类 3 StringBuilder类 NO.one API概述 1.1 API概述 API(Application Programm ...
 - Java之常用API
		
API概述 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些 ...
 - Selenium2(java)selenium常用API 四
		
WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.click ...
 - Selenium2(java)selenium常用API 六
		
selenium处理HTML5 处理Vedio WebDriver driver = new FirefoxDriver(); driver.get("http://videojs.com/ ...
 
随机推荐
- 转 oracle 开发 第03章 sqlplus
			
目录 1.查看表结构 desc 2.编辑SQL语句 append.list.change.run 3.保存.检索并运行文件 save.get.start.edit.spool 4.格式化列 colum ...
 - 单词接龙(dragon)
			
单词接龙(dragon) 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次) ...
 - c语言字符串转OC字符串
			
// 如果把c语言字符串转OC字符串,@(C字符串) char *c = "abc"; NSLog(@"%@", @(c));
 - 设置DIV根据内容自动调整高度的三个方法
			
Div即父容器在Firefox.Chrome.Safari中不会根据内容自动调节高度,我们看下面的HTML代码: <divid="main"><divid=&qu ...
 - 认识ExtJS(04)--常见Web框架的ExtJS改造
			
常见Web框架的ExtJS改造 怎样开始改造工作? 改造主要集中在对表现层的修改,底层的数据库访问不需要进行任何的变动.也就是说主要集中早这2个方面:一方面是表现部分即是JSP页面:另一方面是客户端与 ...
 - 转:Loadrunner上传文件解决办法(大文件)
			
最近再做一个跟海量存储相关的项目测试,需要通过LR模拟用户大量上传和下载文件,请求是Rest或Soap,同时还要模拟多种大小尺寸不一的文件 通常情况下,都是使用简单的post协议即可: 方法一: we ...
 - LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
			
我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作 . Union Al ...
 - JSTL select和checkbox的用法
			
select的 用法 <select id="roleIds" name="roleIds" multiple="true" back ...
 - 【翻译】go语言中的map实战
			
业余时间翻译,水平很差,如有瑕疵,纯属无能. 原文链接 http://blog.golang.org/go-maps-in-action go语言中的map实战 1. 简介 哈希表是计算机科学中最重要 ...
 - Bootstrap-dialog的使用(续Bootstrap Table)
			
Bootstrap-dialog实现表格内容的增,删,改. 插件引入:必须先引入jquery和bootstrap和artTemplate. <link rel="stylesheet& ...