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"

时间: 2024-07-29 10:07:54

selenium使用autoit3处理windows控件的相关文章

利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用

原文:利用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法和步骤. 你可以在下面的目录下找到相应的样例程序: <安装目录>\DeveloperKit\Samples\Developer_Guide_Scenarios\ ArcGIS_Engine\Building_an_ArcGIS_Control_Application\Map_Viewer 注:ArcGIS样

Delphi对象变成Windows控件的前世今生(关键是句柄和回调函数)

----------------------------------------------------------------------第一步,准备工作:预定义一个全局Win控件变量,以及一个精简化的Win控件类var CreationControl: TWinControl = nil; // 定义全局变量,用来表示每次刚创建的Win控件 TWinControl = class(TControl) private FDefWndProc: Pointer; // 记录原有的窗口过程,但只有

在web中使用windows控件,实现摄像头功能

最近做的一个Web版的视频会议项目,需要在网页中播放来自远程摄像头采集的实时视频,我们已经有了播放远程实时视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,ActiveX. 1.将.Net控件转化为ActiveX控件 首先要做的就是将我们的windows视频播放控件转化为ActiveX控件.先看看我们视频播放控件的定义,其基于OMCS实现,相当简单: [csharp] view plain copy public partial class Camera

[转]windows控件消息和控件通知消息大全

本篇文章主要介绍了"windows控件消息和控件通知消息大全",主要涉及到windows控件消息和控件通知消息大全方面的内容,对于windows控件消息和控件通知消息大全感兴趣的同学可以参考一下. Edit Control Notification Codes EN_SETFOCUS EN_KILLFOCUS EN_CHANGE EN_UPDATE EN_ERRSPACE EN_MAXTEXT EN_HSCROLL EN_VSCROLL Edit Control Messages EM

在Web中使用Windows控件

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 将Net控件转化为ActiveX控件 1GUID 2实现IObjectSafety接口 3程序集设定 制作安装程序 Web集成 最近做的一个Web版的视频会议项目,需要在网页中播放来自远程摄像头采集的实时视频,我们已经有了播放远程实时视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,ActiveX. 1.将.Net控件转化为ActiveX控件 首先要做的就是将我们的windows视频

在Web中如何使用Windows控件(ActiveX)[转]

最近做的一个Web项目,需要在网页中播放摄像头采集的实时视频,我们已经有了播放视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,ActiveX. 1.将.Net控件转化为ActiveX控件 首先要做的就是将我们的windows视频播放控件转化为ActiveX控件.先看看我们视频播放控件的定义,其基于OMCS实现,相当简单: public partial class CameraVideoPlayer : UserControl { private IMu

windows控件理论学习

mmp快考试了还在浪 一.对话框编辑器创建控件 1.使用new在堆上创建,系统结束时我们需要使用delete去销毁控件 2.对话框编辑器控件,程序结束,自动销毁 二.控件类的基类 CWnd类和消息映射隐藏在Wndproc()函数,含有windows消息时,会自动到 onmessage函数中,然后通过Onmessage函数的重写来实现对特殊消息的处理 使用CWnd类时,可以通过增加成员函数来实现对相关数据的存储,另外还可以实现啊成员函数和消息的映射 创建CWnd子控件分为两步: 调用构造函数创建C

selenium webdriver自动化对日期控件的处理

用JS去掉日期输入框的readOnly属性. 代码如下: ------------------------------------------------------------------------------------- String js="document.getElementById('dateTimeId').removeAttribute('readOnly');document.getElementById('dateTimeId').setAttribute('value'

selenium Webdriver 处理 —— 通过时间控件给文本框赋值

说明:大部分程序选择时间时都是用 时间控件 直接选择一个日期然后赋值给文本框,下面举例说明 1.利用时间控件赋值给文本框具体事例如下: HTML界面: java代码: //用js将input标签的readonly去掉 String js1="var setDate=document.getElementById(\"publishTime\");setDate.removeAttribute('readonly');";//定义一个js exeJS(dr, js1)