upload_file
创作时间:
作者:
@小白创作中心
upload_file
引用
CSDN
1.
https://blog.csdn.net/mo_sss/article/details/138634919
本文将详细介绍如何使用Selenium在Java中实现文件上传的自动化测试。
1. 上传文件的HTML网页
首先,我们需要创建一个包含文件上传功能的HTML页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>upload_file</title>
<!--bootstrap 核心 CSS 文件-->
<link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" >
</head>
<body>
<div class="row-fluid">
<div class="span6 well">
<h3>文件上传</h3>
<p></p>
<br>
<br>
<input type="file" name="file" id="fu" />
<!-- <button id="btn" type="button" name="BTN">提交按钮</button>-->
</div>
</div>
</body>
<!--<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>-->
<!--bootstrap 核心 javascript 文件-->
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</html>
2. 访问HTML页面
使用Selenium打开上述HTML页面:
// 这里有一个上传文件的html文件,访问该文件可以测试上传文件的按钮
webDriver.get("E:\\PROJECTS\\MYSELF\\libai-multifunctional-platform\\src\\main\\java\\com\\libai\\test\\selenium\\chrome\\html\\upfile.html");
3. 准备上传的文件
本地准备一个文件,并将其完整路径定义为变量:
// 需要上传的文件的本地路径
String filePath = "F:\\CSDN\\CsdnFileBg\\selenium20240509.png";
4. 定位上传控件
使用Selenium定位到HTML中上传文件的输入位置:
// 定位到html中上传文件的输入位置
WebElement kw = webDriver.findElement(By.id("fu"));
5. 上传文件
通过sendKeys方法上传文件:
// 通过sendKeys传入文件全路径,执行程序后可以看到文件被选中后显示在文件上传按钮后面
kw.sendKeys(filePath);
6. 完整代码
下面是完整的Java代码示例:
package com.libai.test.selenium.chrome;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.io.File;
/**
* @ClassDescription: 文件上传模拟
* @JdkVersion: 1.8
* @Author: 李白
* @Created: 2024/5/9 9:34
*/
public class FileUploadTest {
public static void main(String[] args) throws InterruptedException {
// 指定驱动,第一个参数为驱动名称,不同浏览器的参数名称不一样,请根据浏览器查询到对应的浏览器参数名,第二个参数为驱动文件路径,即驱动完整文件路径
System.setProperty("webdriver.chrome.driver", "D:\\JavaSoftWares\\Google\\driver\\chromedriver-win64\\chromedriver.exe");
// 谷歌驱动
ChromeOptions cops = new ChromeOptions();
// 允许所有请求
cops.addArguments("--remote-allow-origins=*");
// 默认设置开始打开网页时窗口最大化
cops.addArguments("--start-maximized");
// 创建驱动对象
WebDriver webDriver = new ChromeDriver(cops);
// 启动需要打开的网页
// webDriver.get("https://www.baidu.com");
// 这里有一个上传文件的html文件,访问该文件可以测试上传文件的按钮
webDriver.get("E:\\PROJECTS\\MYSELF\\libai-multifunctional-platform\\src\\main\\java\\com\\libai\\test\\selenium\\chrome\\html\\upfile.html");
// webDriver.get("./chrome/html/upfile.html");
// 指定窗口大小--最大化
// webDriver.manage().window().maximize();
// 上传文件主要通过sendKeys
// 需要上传的文件的本地路径
String filePath = "F:\\CSDN\\CsdnFileBg\\selenium20240509.png";
// 定位到html中上传文件的输入位置
WebElement kw = webDriver.findElement(By.id("fu"));
Thread.sleep(3000);
// 通过sendKeys传入文件全路径,执行程序后可以看到文件被选中后显示在文件上传按钮后面
kw.sendKeys(filePath);
Thread.sleep(3000);
// 提交按钮
// webDriver.findElement(By.id("btn")).click();
Thread.sleep(3000);
// 关闭资源(关闭浏览器)
webDriver.close();
}
}
7. 浏览器自动操作的截图
以下是浏览器自动操作的截图:
- 首先会将HTML页面用浏览器打开
- 然后会将本地文件上传到页面
热门推荐
五笔输入法的辉煌与消亡:技术革命中的一段传奇
“真金白银”的实惠,汽车以旧换新撬动消费新活力
什么是 NPD 人格?如何区分健康自恋与病态自恋?
学校周年办学成果展展厅设计指南:以建校90周年为例
AI赋能寒假:广东高校师生的新春“智”趣
民营企业家座谈会召开:从杭州 六小龙看山东民营经济发展之路
“入学3个月后,我发现导师学术不端”
FPGA和嵌入式系统:定义、原理、架构、编程和应用领域的全面对比
干花花材要怎么挑?花材如何干燥?
“绿美+”让云南保山多赢发展
为什么说太平天国运动打掉清朝的半条命,却打出了中华民族的未来
94岁吴明珠院士重返新疆:62年育种生涯培育30多个瓜种
商务英语专业就业方向与就业前景怎么样
福建泉州洛阳桥:一桥带“火”一座城
科学护肤7大步骤,顺序很重要!
水垢清洁全攻略:从形成原因到彻底清除

肺癌:从病因、诊断到治疗的全面指南
17种机器学习回归算法在金融的应用
揭开香港公司上市的神秘面纱:全面解读上市要求
创新科技助力生态环境绿色发展 能源转型拥抱地球共享美好家园
股票分级的具体方式和投资策略是什么?这种分级对股票市场有何影响?
穿越时空的神话之旅:《黑神话·悟空》与《山海经》在“阅见东方”中碰撞出的奇妙火花
什么是斯诺克?规则、得分、颜色及摆放详解
守门员被红牌罚下,足球比赛中的处理方法
科学家开发扩展的非线性充电振子模型,量化气候模态相互作用对厄尔尼诺可预报性的影响
什么是合同分配?定义、原则、流程及优化方法全解析
陶喆:从鬼畜到翻红,华语R&B教父的文艺复兴
沈阳脚手架作业高度的科学判断与安全规范
【日本浮世绘】盘点丨浮世绘六大家
体育中考必考项目全攻略:跑步、立定跳远和跳绳技巧详解