在自动化测试过程中会遇到如下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界面的更多相关文章

  1. 登录Windows界面前执行自定义脚本

    通常情况下,进入Windows界面之前都有一个登录过程,如何在登录前让系统执行脚本呢?下面介绍一种方法. 1.打开组策略,在Run(运行)中输入GREDIT.MSC,点击确认. 2.依次点击Compu ...

  2. W11更新,卡在正在准备Windows界面的解决办法

    昨天更新win11的时候,莫名其妙卡在了正在准备Windows界面. 为什么更新卡住了? 原因可能有很多: 更新文件大小可能很大,您的计算机可能会遇到问题. 机器停电或机器过热中断更新,这有可能导致一 ...

  3. Windows界面设计标准

    Windows界面设计标准..- Windows界面设计标准 Windows 界面设计标准 1. 易用性 界面元素的名称.标签应该易懂,用词准确,避免使用模楞两可的字眼,要与同一界面上的其他元素易于区 ...

  4. 终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。

    好像是两三年前的时候发现这个问题. 由于在windows经典界面与windows xp界面下,窗口的标题栏的高度是不一样的. 所以我们在用Java写GUI程序的时候,会遇到一个问题. 当我把一个JFr ...

  5. Android原生和H5交互;Android和H5混合开发;WebView点击H5界面跳转到Android原生界面。

    当时业务的需求是这样的,H5有一个活动商品列表的界面,IOS和Android共用这一个界面,点击商品可以跳转到Android原生的商品详情界面并传递商品ID:  大概就是点击H5界面跳转到Androi ...

  6. WPF点击不同界面上的按钮实现界面切换

    原文:WPF点击不同界面上的按钮实现界面切换 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_29844879/article/details/ ...

  7. Windows界面编程第五篇 静态控件背景透明化(13篇)

    上一篇<Windows界面编程第三篇 异形窗体 普通版>和<Windows界面编程第四篇异形窗体 高富帅版>介绍了异形窗口(异形窗体)的创建,并总结出了异形窗口的“三要素”: ...

  8. windows界面程序设计,设置一个窗口始终在屏幕最前,SetWindowPos函数

    有时这种需求还是很必须的,比如现在做的一个登录验证系统,如果在windows登录界面点击到窗口外面,那窗口就会永远隐藏掉没法再启用了.这种情况必须设置该窗口一直在最前. 使用函数SetWindowPo ...

  9. 重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部

    1.监听按钮点击   2.判断是否是点击的同一个按钮(记录上次点击的按钮)   3.当重复点击相同按钮时,需要获取当前按钮对应控制器刷新界面      3.1 判断是否重复点击按钮,代码写在哪里?   ...

随机推荐

  1. C++编程规范之19:总是初始化变量

    摘要: 一切从白纸开始,未初始化的变量是C和C++程序中错误的常见来源.养成在使用内存之前先清除的习惯,可以避免这种错误,在定义变量的时候就将其初始化. 按照C和C++相同的低层高效率传统,通常并不要 ...

  2. Hadoop 开源调度系统zeus(二)

    紧跟之前Hadoop 开源调度系统zeus(一) 本节主要介绍一下zeus的架构: 先给一个zeus的架构图 无论Master还是Worker都有一套WEB UI,无论从哪个上面去看,看到的结果都是一 ...

  3. sys--system-sysdba-sysoper用户区别

    当Oracle 数据库安装完毕后,系统会自动创建sys和system这两个帐户.1.sys :缺省密码为CHANGE_ON_INSTALL ,且被授予DBA角色system :缺省密码为MANAGER ...

  4. VS2013服务器资源管理器添加Mysql数据源

    如何为VS2013服务器资源管理器添加Mysql数据源,如图: 接下来就看下如何添加 1.需要下载安装Mysql for Visual Studio 1.1.1 下载位置:http://downloa ...

  5. css圆角

    在CSS3中圆角属性,有四个.三个.两个和一个值. 四个值: 第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下角.

  6. HTML与CSS入门——第五章 使用文本块和列表

    知识点: 1.在页面上对齐文本的方法 2.三种HTML列表的使用方法 3.在列表中放置列表的方法 5.1 在页面上对齐文本: 父元素内子元素文本的居中:在控制父元素的text-align:center ...

  7. 关于为什么RAID5往往掉一个盘后第二个盘也立刻挂掉的原因分析

    很多人遇到过服务器RAID5挂掉,往往掉一个盘后,第二个盘也立刻挂掉. 大家都知道RAID5 一次允许一个盘缺失, RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位 ...

  8. (五)backbone - DEMO - 通信录改造之使用requirejs

    DEMO介绍是 DEMO通信录的扩展,使用requirejs模块化整合 大体实现 • model文件 model/contact.js define(function (){ // user cont ...

  9. 解决表格里面使用text-overflow后依旧不能隐藏超出的文本

    解决表格里面使用text-overflow后依旧不能隐藏超出的文本 来源: http://blog.csdn.net/colinmuxi/article/details/9069595  (非原创,自 ...

  10. 获取当前页面的完整URL

    PHP实现 #测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."< ...