zoukankan      html  css  js  c++  java
  • selenium使用autoit3处理windows控件

    selenium本身无法处理windows控件,需要借助autoit
    autoit3的语法很简单,如处理上传文件的windows对话框

       ControlFocus("请选择上传文件", "","Edit1")
        ControlSetText("请选择上传文件", "", "Edit1", "d:upload.txt")
        Sleep(2000)
        ControlClick("请选择上传文件", "","Button1");
    这些方法语法基本都类似:
    第一个参数:title/hwnd/class
    ControlClick($hWnd, "", "Edit1")
    ControlClick("title", "", "Edit1")
    ControlClick("[CLASS:#32770]", "", "Edit1")

    controlid :id text,class,classnn,name,instance
    如:button1 ;[ID:1003];1003(id),"[CLASSNN:Edit1]", "保存(&s)",[class:button;instance:1],"[NAME:textBoxFolder]",


    例如:上面的语句还可以这样写
    ControlFocus("[CLASS:#32770]", "","Edit1")
    $hwnd=winwait("[CLASS:#32770]","",5)
    ControlSetText($hwnd, "", "edit1", $filename)
    Sleep(2000)
    ControlClick("[CLASS:#32770]", "", "保存(&s)")

    如果需要传递参数,则需要封装函数,autoit的参数形式为:$CmdLine[0]为参数个数,$CmdLine[1]表示第一个参数,以此类推,如多个参数,调用时,中间用空格分割,如upload.exe param1 param2
    saveas($CmdLine[1])
    Func saveas($filename)
        winactve("[CLASS:#32770]")
        ControlFocus("请选择上传文件", "","Edit1")
        ControlSetText("请选择上传文件", "", "Edit1", $filename)
        Sleep(2000)
        ControlClick("请选择上传文件", "","Button1");
      EndFunc
    转换成exe文件,就可以直接调用

    java调用:
    public static void savefile(String filepath){
      String command = "e:\upload.exe"+" "+filepath;
      try {
       Runtime.getRuntime().exec(command);
      } catch (IOException e) {
       
       e.printStackTrace();
      }
     }

    当然QTP也可以调用:
    createobject("wscript.shell").run "d:upload.exe"

  • 相关阅读:
    OpenCV4Android——No implementation found for native Lorg/opencv/core/Mat;.n_Mat ()J
    The method onClick(View) of type new View.OnClickListener(){} must override a superclass
    Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境
    45_拍照
    32_文件断点上传器
    31_多线程断点下载器
    Eclipse的Servers视图中无法添加Tomcat
    23_网络通信之网络图片查看器
    C语言 · 时间转换
    C语言 · 4_2找公倍数
  • 原文地址:https://www.cnblogs.com/cmm2016/p/6085892.html
Copyright © 2011-2022 走看看