selenium autoit java_Java+Selenium——AutoIt工具处理文件上传

关于文件上传,这边介绍一个第三方工具,叫AutoIt,简单来说,这个是一个能支持桌面GUI自动化的工具,它支持脚本语言编写。这里,我们用AutoIt来做文件上传的演示。在Selenium脚本中如果需要AutoIt来协助这个文件上传功能,大概步骤是这样的:

1. Selenium点击web产品上的文件上传按钮,弹窗上传框。

2.执行AutoIt实现准备好的脚本文件,这个脚本文件写了关于上传什么文件的一个.exe文件。

所以,我们先来介绍如何下载和安装AutoIt。

1)打开AutoIt的官网下载地址

2)点击下载zip

cbcc9b94e2bec3e28446b4ba30053380.png

9c7fce053de4e9d3c7fb52f1a4644a0b.png

两种下载方法都可以,这里我想下载的是zip,解压出来如下图.

aaa5c070a4cdaf4aae066f7cb509c0af.png

3)点击SciTe文件夹,我们打开脚本编辑器。

9d8c65b1f499604ba86d147c55adcd99.png

4)打开百度图片上传窗口,同时打开AutoIt 脚本编辑器和元素定位器。

拖动元素定位器上那个靶点形状按钮到文件上传弹窗,能够捕获到一些元素信息。

29d5af8c71908659d38f3a788c9396d2.png

5)在AutoIt脚本编辑器里输入如下脚本,不要下面我写的备注哈。

876bee53ae253e1e7f4a57d45a82ac63.png

ControlFocus("文件上传","","Edit1")

ControlSetText("文件上传","","Edit1","C:\Users\del\Desktop\123.gif")

ControlClick("文件上传","","Button1")

2e657dcc5f38df531ae6b37c203d18e1.png

6)编译成一个.exe文件

先保存到本地,例如默认路径保存,名称为UploadFile.au3,

然后在AutoIt脚本编辑器中点击Tools菜单,选择compile,会在同路径下生成一个UploadFile.exe的文件,

我们把这个文件拷贝到桌面,待会在Selenium脚本要使用。

8491b5f91ff490acd27d245f8c41210d.png

ac01a9402b1b6365bbf4fdfe832594bd.png

7)Selenium脚本执行123.exe文件,观察文件是否上传。

packagerjcs;importjava.io.File;importjava.awt.Rectangle;importjava.awt.Robot;importjava.awt.Toolkit;importjava.awt.image.BufferedImage;importjava.awt.image.BufferedImage;importorg.apache.commons.io.FileUtils;importorg.openqa.selenium.By;importorg.openqa.selenium.OutputType;importorg.openqa.selenium.TakesScreenshot;importorg.openqa.selenium.firefox.FirefoxDriver;importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.imageio.ImageIO;public classzmjsj

{public static voidmain(String[] args)

{

System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //设置火狐的安装路径,防止系统找不到

FirefoxDriver driver= new FirefoxDriver(); //初始化FireFox浏览器实例,并打开浏览器

try{

driver.manage().window().maximize();//最大化窗口

Thread.sleep(3000);

driver.manage().window().maximize();//最大化窗口

Thread.sleep(3000);

driver.get("https://www.baidu.com/");

Thread.sleep(3000);

driver.findElement(By.xpath("//*/span[@class='soutu-btn']")).click(); //点击照相机这个按钮

Thread.sleep(8000);

driver.findElement(By.xpath("//*/input[@class='upload-pic']")).click(); //点击本地上传图片

Thread.sleep(8000);

Runtime.getRuntime().exec("C:\\Users\\del\\Desktop\\123.exe");//执行桌面的AutoIt封装的脚本

Thread.sleep(10000);

}catch(Exception e)

{

e.printStackTrace();

}finally{

driver.quit();

}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Blazor+Dapr+K8s微服务之开发环境调试

1 安装Dapr开发调试环境1.1 Dapr 完整安装模式不支持开发调试在上一篇随笔《BlazorDaprK8s微服务之服务调用》中,我们通过为每个微服务运行dapr run ….dotnet run命令,以自宿主的方式在本地开发环境成功运行了服务调用的例子。但是,这种运行…

这10个人,总是牛逼的无话可说

全世界只有3.14 % 的人关注了爆炸吧知识终于迎来知识君最喜欢的工作日了。热爱工作的知识君还是在认真地看书,码字。哈哈哈,有模友知道看得是什么书然而在拍完照片后,还是得想想今晚该写些啥东西。狄拉克 保罗狄拉克(Paul Adrien Maurice …

WebSocket服务器(物联网下行通知神器)

HttpServer是一个轻量级Web服务器,用于在嵌入式设备以及客户端环境中提供简单Web服务,同时也支持标准WebSocket服务。本文例程基于vs2022,基础例程可参考:https://www.yuque.com/smartstone/nx/httpserverWebSocket服务端WebSocke…

继续送假期干货——响应式图片工具smartImg

中午看《众妙之门》看到一个响应式图片处理工具(点此查看)的介绍,然后就心血来潮想着不妨自己写一个基于JQ的吧,于是就又有了这么一个干货给大家。 smartImg 的全部文件可以从我的Github上下载,其实它非常小巧&#xf…

一顿家庭火锅让本不富裕的家庭雪上加霜......

1 从此再也没有人相信你曾是个双眼皮▼2 在家吃火锅让一个本不富裕的家庭雪上加霜▼3 大型翻车现场▼4 各位大爷大伯,我先干了招待不周,还望海涵▼5 老外为了防止用手摸脸导致传染发明出来的新方法 ......但这东西难道不是宠物那啥用的吗&#xff1…

ASP.NET Core 修改开源协议为MIT,.NET全平台 MIT协议开源了

2021年7月23日,.NET开发团队完成了所有的.NET平台的相关框架的MIT协议更改,我们可以通过 https://github.com/dotnet/aspnetcore/issues/18873 看到详细的修改提交,这个协议修改里面主要有2点,具体可以看 https://github.com/dotn…

InstallSield更新包快速入门文档----感谢原作者ㄣ齊¨彡仯乄的无私提供

本文经原作者ㄣ齊彡仯乄特许授权于海洋女神发布,转载请务必注明出处与链接;原作者ㄣ齊彡仯乄和海洋女神保留对该文的一切法律许可下的权益;需要发布在盈利性报刊、网站等请与原作者ㄣ齊彡仯乄或海洋女神联系. 简述 本文主要描述安装程序更新包…

太赞了:中文版开源!这或许是最经典的计算机编程教材

全世界只有3.14 % 的人关注了爆炸吧知识转自 AI 科技大本营《Think Python》是很多计算机初学者的不二入门教材,受到广泛好评。该书原作者是美国 Olin 工程学院的教授 Allen B. Downey,目前该书的原版和中文版本都已免费开源。Allen 称,《Thi…

jBPM专家力作——《深入浅出jBPM》

恭喜本书荣登互动网和当当网畅销排行榜!媒体评论 “这是一本全面介绍jBPM的书,从基础知识到实战开发技巧,作者结合其实际项目开发经验,对国内流程的许多特色要求给出了浅显易懂的解决方案。对于想在项目中应用jBPM的初学者&#x…

WeihanLi.Npoi 1.20.0 Released

WeihanLi.Npoi 1.20.0 ReleasedIntroWeihanLi.Npoi 是一个基于 netstandard2.0 的一个 NPOI 扩展库,主要用于导入导出 Excel 以及CSV,支持通过 Fluent API 的方式来支持非常灵活的导入导出配置,详细使用可以参考文档介绍以及项目示例Updates最…

转:Chrome渲染分析之Timeline工具的使用

概述 这个工具真的很强大,Timeline工具栏提供了对于在装载你的Web应用的过程中,时间花费情况的概览,这些应用包括处理DOM事件, 页面布局渲染或者向屏幕绘制元素。Timeline可以通过事件,框架,和实时内存用量3个方面的数…

数学和物理太难?这些动图让你秒懂抽象概念

数学动图△ 从椭圆的一个焦点射出的光线总会通过另一个焦点。△ 真人版。△ 一图看懂正弦、余弦和正切什么意思。△ 圆的面积。△ 如何理解圆的面积和派的关系。△ 勾股定理演示。直角三角形的两条直角边的平方和(两个小正方形的面积),加起来…

java typereference_记录一下jackson中TypeReference的使用

今天在看到项目中有一段代码是将string字符串转化成对象,需要被转化成对象的类加了TypeReference,随即去百度了下。TypeReference是一个抽象类,继承了Comparable接口。里面的Type是一歌接口。贴上代码:mapper.readValue(station.g…

Docker小白到实战之容器数据卷,整理的明明白白

前言上一篇把常用命令演示了一遍,其中也提到容器的隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失。从隔离性的角度来看,数据就应该和容器共存亡&a…

U9在SQL Server上的性能优化经验(转述) — 之 行版本快照

此文根据用友的文档《基于SQL Server 2008构建SOA大型管理软件技术实践》“翻译”而成,非原创。在baidu上看见此文,觉得写的很好,就将原先的PPT细化一下并除去废话。 第二篇部分将的是行版本快照的隔离。 这是PPT上的图片: 图片上…

程序员崩溃的40个瞬间!!!

全世界只有3.14 % 的人关注了爆炸吧知识说到程序员,在外界眼里,他们是掌控代码的大神,他们是改变世界的王者。其实程序员的工作不容易,不信,就来看看程序员崩溃的各种瞬间——01公司实习生找bug02在调试时,…

java web请求字符串处理_java web工作常用技能篇(三)-封装复杂请求对象2

前言:在各类网站论坛上,没有找到与工作比较贴切的技能,所以特此写一些对刚步入工作或者工作中没有重视的技能与问题,各位大牛请及时关闭文章.ps1:文中所有标点都是英文的,看官请不要在意.为了便于平时敲代码,所以中文输入法也默认了英文标点(防止各类因为…

Matlab学习------------带有右键菜单的GUI学习实例

实例步骤: 须要设置UIContextMenu,否则点击右键不显示。 右键点击第一个菜单之后:(在菜单中加入对应的回调函数) function r1_Callback(hObject, eventdata, handles) % hObject handle to r1 (see GCBO) % eventda…

多方位助您快速精准查阅文献和发文章的利器——X-MOL

全世界只有3.14 % 的人关注了爆炸吧知识无论您看文献的习惯是怎样的,X-MOL都有一种为您节省时间的功能:01根据参考文献一键直达全文—— X-MOL文献直达复制文章题录信息(如“PNAS, 2020, 117, 6771-6776”)或DOI, 粘贴到X-MOL首页…

ASP.NET Core端点路由中三种让人困惑的路由函数

早先提及了端点路由app.UseEndpoints, 端点路由强调的是端点和路由,其核心目的是将请求落地点与路由寻址方式解耦。《ASP.NET Core端点路由作用原理》这里面有几个容易混淆的函数•MapControllerRoute•MapDefaultControllerRoute•MapControllers有什么不同&#x…