zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    视图类、二次封装、视图家族、GenericAPIView视图基类、mixins视图6大工具类、generic中的工具视图、路由组件
    单改、整体/局部修改、群改接口
    多表、序列化反序列化、群增单删群删接口
    解析模块
    drf框架
    vue-04
    vue-03
    VUE-02
    vue
    ❥《python入门到入土》全教程❥
  • 原文地址:https://www.cnblogs.com/testway/p/6033529.html
Copyright © 2011-2022 走看看