在自动化测试过程中会遇到如下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. 自定义控件(视图)2期笔记01:自定义控件之自定义View的步骤

    1. 根据Android Developers官网的介绍,自定义控件你需要以下的步骤: (1)创建View (2)处理View的布局 (3)绘制View (4)与用户进行交互 (5)优化已定义的Vie ...

  2. JavaScript中函数参数的按值传递与按引用传递(即按地址传递)

    首先声明一句:JavaScript中所有函数的参数都是按值传递的!不存在按引用传递! 在讲传递参数之前我们先来讲一下指针. 学过C指针的应该都知道,指针变量中保存的是一个地址,程序可以根据所保存的地址 ...

  3. FreeMarker辅助

    /** * FreeMarker 辅助类 * @author Rubekid * */ public class FreeMarkerHelper { /** * 模板文件存放目录 */ privat ...

  4. pd的django To do list教程-----(2)models模型的建立

    1:在models.py中建表 from django.db import models class Tcontent(models.Model): content = models.CharFiel ...

  5. (转)HiddenField控件的使用

    ASP.NET2.0 HiddenField控件(1)2007-05-12 23:18HiddenField控件顾名思义就是隐藏输入框的服务器控件,它能让你保存那些不需要显示在页面上的且对安全性要求不 ...

  6. 《第一行代码》学习笔记38-服务Service(5)

    1.希望服务一旦启动就立刻去执行某个动作,可以将逻辑写在onStartCommand()方法里. 2.onCreate()和onStartCommand()的区别:onCreate()方法是在服务第一 ...

  7. js中substring和substr的用法 (转)

    1.substring 方法 定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符. 语法 stringObject.substring(start,stop) 参数     ...

  8. java中包的应用

    Do2.java package mypack; class Do2 { public static void main(String[] args) { packa.Do3 d=new packa. ...

  9. div滚动条,可以自由的给滚动条定义背景,上下按钮,当然不仅仅是颜色,连图片当背景也可以。

    可以自由的给滚动条定义背景,上下按钮,当然不仅仅是颜色,连图片当背景也可以.支持鼠标滚轮,点击滚动条滚轴定位,上下按钮久按加速,兼容firefox,谷歌 下载地址

  10. php开发客服系统(持久连接+轮询+反向ajax)

    欢迎在php严程序 - php教程学习AJAX教程, 本节课讲解:php开发客服系统(持久连接+轮询+反向ajax) php开发客服系统(下载源码) 用户端(可直接给客户发送消息)客服端(点击用户名. ...