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命令,以自宿主的方式在本地开发环境成功运行了服务调用的例子。但是,这种运行…

也谈cacti整合nagios(centos)

花了近一天的时间整合了cacti和nagios,cacti用来检测运行状态nagios主要用来预警。期间参考了很多网友的文章,在此感谢下!在这里记录一下配置过程,以备后忘。。说整合其实只是表面的,cacti和nagios还是以他们原来的方式…

cursor 的moveToFirst和moveToNext和moveToPrevious以及moveToLast

查询出来的cursor的初始位置是指向第一条记录的前一个位置的,cursor.moveToFirst()指向查询结果的第一个位置。一般通过判断cursor.moveToFirst()的值为true或false来确定查询结果是否为空。cursor.moveToNext()是用来做循环的,一…

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

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

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

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

SCCM 2007系列教程之三日志文件

Microsoft System Center Configuration Manager 2007 中的所有客户端和站点服务器组件都将过程信息记录在单个日志文件中。您可以使用客户端和站点服务器日志文件中的信息来帮助您诊断在 Configuration Manager 2007 层次结构中可能出现的问题。默认情况下,Configu…

Unix常用命令

第一章 目录及文件操作命令 1.1 ls [语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......][说明]: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺序为纵向按字符顺序排列。-R 递归地列出每个子目录的内容-…

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

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

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

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

JAVA中pin什么意思_java语言中的多态概述

多态:一个对象相应着不同类型多态在代码中的体现:父类或接口的引用指向其子类对象。多态的优点:提高了代码的扩展性,前期定义的代码能够使用后期的内容。多态的弊端:前期定义的内容不能使用后期子类中定义的特有内容。…

过滤非法字符

在最近的项目中自己写了一段处理过滤非法字符的函数 原理: 1:首先判断页面的提交方式只有在post的情况下才进行过滤非法字符 2:将所以form表单中的数据保存到…

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

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

耳机没有声音

一 硬件二 驱动三 服务四 设置设置问题 1.应该是电脑里面的声道,扬声器 里面有声道设置。点击喇叭 ——打开音量控制——扬声器音量,,里面左右啊 什么的搞搞就好了 2.禁止前面板插入

C++入门【14-C++ 指向数组的指针】

您可以先跳过本章,等了解了 C 指针的概念之后,再来学习本章的内容。 如果您对 C 指针的概念有所了解,那么就可以开始本章的学习。数组名是指向数组中第一个元素的常量指针。因此,在下面的声明中: double runoobAarray…

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

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

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

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

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

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

java gui 移动_JavaGUI如图:当鼠标按left按钮,右边的字会移动到左边按 爱问知识人...

import t。*;import javax。swing。*;import t。Rectangle;import t。event。ActionListener;import t。event。ActionEvent;/*** Title:** Description:** Copyright: Copyright (c) 2006** Company:** author zwh* version 1。0*/public class Frame1extends JFrame {public …

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个方面的数…