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)方法即可。

时间: 2024-10-25 10:22:48

Selenium2(java)selenium常用API 五的相关文章

Selenium Web 自动化 - Selenium常用API

Selenium Web 自动化 - Selenium常用API 2016-08-01 1 WebElement相关方法2 iFrame的处理3 操作下拉选择框4 处理Alert5 处理浏览器弹出的新窗口6 执行JS脚本7 等待元素加载8 模拟键盘操作9 设置浏览器窗口大小10 上传文件11 Selenium处理HTML5 1 WebElement相关方法 Method   Summary void clear() If   this element is a text entry elemen

详解介绍Selenium常用API的使用--Java语言(完整版)

一共分为二十个部分:环境安装之Java.环境安装之IntelliJ IDEA.环境安装之selenium.selenium3浏览器驱动.selenium元素定位.控制浏览器操作.WebDriver常用方法.模拟鼠标操作.模拟键盘操作.获取断言信息.设置元素等待.定位一组元素.多表单切换.多窗口切换.下拉框选择.警告框处理.文件上传.浏览器cookie操作.调用JavaScript代码.获取窗口截屏: 虽然,学习Maven需要增加你的学习成本,但如果你需要长期使用Java编程语言,或者想用Java

Java 之常用API

常用API  1 API概述  2 Scanner类与String类  3 StringBuilder类 NO.one API概述 1.1 API概述 API(Application Programming Interface) : 应用程序编程接口 编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑.向后跑.射门.抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写.但是对于有经验的开发人员来说,知道机器人厂商一定会提供一些用于控制机器人的Java类,这些类中定义好了操作

Selenium2(java)selenium常用API 四

WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.click(); 由元素对象调用click()方法:   2.清除操作 WebElement username = driver.findElement(By.id("username_input")); username.clear(); 调用之后,会把输入框的内容全部清空:   3.获得元素属性

Selenium常用API详解介绍

转至元数据结尾 由 黄从建创建, 最后修改于一月 21, 2019 转至元数据起始 一.selenium元素定位 1.selenium定位方法 2.定位方法的用法 二.控制浏览器操作 1.控制浏览器窗口大小 2.控制浏览器后退.前进 3.刷新页面 三.WebDriver常用方法 1.WebDriver 常用方法 2.其它常用方法 四.模拟鼠标操作 1.关于鼠标操作的其它方法 五.模拟键盘操作 六.获取断言信息 七.设置元素等待 1.显示等待 2.隐式等待 八.定位一组元素 九.多表单切换 十.多

Java的常用API

Object类 1.toString方法在我们直接使用输出语句输出对象的时候,其实通过该对象调用了其toString()方法. 2.equals方法方法摘要:类默认继承了Object类,所以可以使用Object类的equals方法boolean equals(Object obj)指示其他某个对象是否与此对象“相等”. equalse方法源码: public boolean equals(Object obj){ return (this == obj); } 参数: Object obj:可以

java自学-常用api

API(Application Programming Interface),应用程序编程接口.Java API是JDK中提供给我们使用的类的说明文档.即jdk包里边写好的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可.所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们. 例子 ArrayList<String> list = new ArrayList<String>(); ArrayList就是一个

python+selenium——详解介绍Selenium常用API的使用--python语言(完整版)

参考:http://www.51testing.com/html/03/n-3725703-2.html from selenium import webdriver driver = webdriver.Firefox() # 指定浏览器驱动 #对象实例化 -------------------------------------------------------------------------- url1='https://www.baidu.com' #需要打开的网址 driver.

黑马程序员——java基础---常用API

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.String类 概念:String类代表字符串.Java 程序中的所有字符串字面值("abc")都作为此类的实例实现.又因为该类被final修饰,表明它不能被其它类所继承,其下的一系列关于字符串的操作方法也就无法被复写. 特点:字符串一旦被创建,将无法改变其值. 1 public class StringTest { 2 3 public static void main(Str