autoitv3点击windows界面
在自动化测试过程中会遇到如下windows安全认证,需要输入账号和密码,这个认证对话框不属于element元素。无法用selenium操作,需要用autoitv3操作,输入账号密码后,再进行web元素操作。

有2中方式:
第一种:编写autoitv3脚本,生成autoitv3 可执行程序,再用java调用可执行程序
autoitv3下载地址
https://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe
使用这个编辑器编写一个脚本,再用脚本生成一个可执行exe文件,这样在需要输入账号和密码的时候,使用java调用可执行exe。就可以实现输入账号和密码的功能了
第二种:下载autoitx4java.jar包(需要翻墙),用java程序调用jar包,实现输入输入和点击等操作,jar包下载地址:
https://code.google.com/archive/p/autoitx4java/downloads
同时也需要下载工具JACOB Java COM bridge:
http://sourceforge.net/projects/jacob-project/
JACOB 包包括3个文件:jacob.jar,jacob-1.18-x64.dll,jacob-1.18-x86.dll
也要下载安装https://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe
java包和dll文件放置位置

package auto.test;
import java.io.File;
import com.jacob.com.LibraryLoader;
import autoitx4java.AutoItX;
public class AutoITUtil {
static File file = null;
public AutoITUtil() {
// TODO Auto-generated constructor stub
}
/**
* 获取java虚拟机32位或64位
* @return
*/
public static String getOSVersion(){
return System.getProperty("sun.arch.data.model");
}
public static void setJacobDllFile(){
String jacobDllVersion = null;
if (getOSVersion().contains("32")){
jacobDllVersion = "jacob-1.18-x86.dll";
}
else {
jacobDllVersion = "jacob-1.18-x64.dll";
}
file = new File("lib", jacobDllVersion);
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
}
//处理window安全对话框 提供参数 tiltle 账号,密码
public static void inputWinSecure(String title,String userName,String pwd) throws InterruptedException{
setJacobDllFile();
AutoItX x = new AutoItX();
Thread.sleep(1000);
x.ControlSetText(title,"","Edit1",userName);
Thread.sleep(1000);
x.ControlSetText(title,"","Edit2",pwd);
Thread.sleep(1000);
x.controlClick(title,"","Button2"); } }
这个window安全对话框的处理,就通调用如下语句来处理:
AutoITUtil.inputWinSecure("Windows 安全", "root", "root");
参考:https://www.joecolantonio.com/2014/07/02/selenium-autoit-how-to-automate-non-browser-based-functionality/
autoitv3点击windows界面的更多相关文章
- 登录Windows界面前执行自定义脚本
通常情况下,进入Windows界面之前都有一个登录过程,如何在登录前让系统执行脚本呢?下面介绍一种方法. 1.打开组策略,在Run(运行)中输入GREDIT.MSC,点击确认. 2.依次点击Compu ...
- W11更新,卡在正在准备Windows界面的解决办法
昨天更新win11的时候,莫名其妙卡在了正在准备Windows界面. 为什么更新卡住了? 原因可能有很多: 更新文件大小可能很大,您的计算机可能会遇到问题. 机器停电或机器过热中断更新,这有可能导致一 ...
- Windows界面设计标准
Windows界面设计标准..- Windows界面设计标准 Windows 界面设计标准 1. 易用性 界面元素的名称.标签应该易懂,用词准确,避免使用模楞两可的字眼,要与同一界面上的其他元素易于区 ...
- 终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。
好像是两三年前的时候发现这个问题. 由于在windows经典界面与windows xp界面下,窗口的标题栏的高度是不一样的. 所以我们在用Java写GUI程序的时候,会遇到一个问题. 当我把一个JFr ...
- Android原生和H5交互;Android和H5混合开发;WebView点击H5界面跳转到Android原生界面。
当时业务的需求是这样的,H5有一个活动商品列表的界面,IOS和Android共用这一个界面,点击商品可以跳转到Android原生的商品详情界面并传递商品ID: 大概就是点击H5界面跳转到Androi ...
- WPF点击不同界面上的按钮实现界面切换
原文:WPF点击不同界面上的按钮实现界面切换 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_29844879/article/details/ ...
- Windows界面编程第五篇 静态控件背景透明化(13篇)
上一篇<Windows界面编程第三篇 异形窗体 普通版>和<Windows界面编程第四篇异形窗体 高富帅版>介绍了异形窗口(异形窗体)的创建,并总结出了异形窗口的“三要素”: ...
- windows界面程序设计,设置一个窗口始终在屏幕最前,SetWindowPos函数
有时这种需求还是很必须的,比如现在做的一个登录验证系统,如果在windows登录界面点击到窗口外面,那窗口就会永远隐藏掉没法再启用了.这种情况必须设置该窗口一直在最前. 使用函数SetWindowPo ...
- 重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部
1.监听按钮点击 2.判断是否是点击的同一个按钮(记录上次点击的按钮) 3.当重复点击相同按钮时,需要获取当前按钮对应控制器刷新界面 3.1 判断是否重复点击按钮,代码写在哪里? ...
随机推荐
- 使用ViewPager+Fragment来实现带滚动条的多屏滑动-IndicatorFragmentActivity
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17201587 介绍 在android应用中,多屏滑动是一种很常见的风格,博主 ...
- 类型兼容原则(C++)
类型兼容原则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代. 通过公有继承,派生类得到了基类中除构造函数.析构函数之外的所有成员.这样,公有派生类实际具备了基类的所有功能,凡是基类能解 ...
- POJ 3356 AGTC(最小编辑距离)
POJ 3356 AGTC(最小编辑距离) http://poj.org/problem?id=3356 题意: 给出两个字符串x 与 y,当中x的长度为n,y的长度为m,而且m>=n.然后y能 ...
- igmpproxy源码学习——igmpProxyInit()
igmpproxy源码学习--igmpProxyInit()函数具体解释.igmpproxy初始化 在执行igmpproxy的主程序igmpproxyRun()之前须要对igmpproxy进行一些配置 ...
- Android 属性动画(二)
当然了属性动画还有一部分的知识点,也能做出很不错的效果,将在本篇博客为您展示~ 1.如何使用xml文件来创建属性动画 大家肯定都清楚,View Animator .Drawable Animator都 ...
- USB2.0速度识别
我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device).因此,如果高速设备挂到USB1. ...
- display属性解析
none 此元素不会被显示 block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元素前后没有换行符. inline-block 行内块元素.(C ...
- Oracle 11g 完全卸载
停止所有Oracle 11g相关的服务 1.打开"服务"窗口 键入命令:"services.msc",回车,如下图: 2.停止所有Oracle 11g相关的服务 ...
- mysql 的密码重置
Windows: 1.以系统管理员登陆: 2.停止MySQL服务: 3.进入CMD,进入MySQL的安装目录,假设是D:/MySQL/MySQL Server 5.0/: 4.跳过权限检查启动MySQ ...
- LinkButton( 按钮)
一. 加载方式 //class 加载方式<a href="###" class="easyui-linkbutton">按钮</a> / ...