用Autoit处理window弹出窗口_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > 用Autoit处理window弹出窗口

用Autoit处理window弹出窗口

 2013/8/24 1:58:11  yxchen51  程序员俱乐部  我要评论(0)
  • 摘要:在利用webdriver做自动化测试中,弹出窗口的处理一直是个很棘手的问题。用auoit能很好处理弹出窗口问题,以window自带安全验证窗口为例,其他窗口的处理和这个类似。require'win32ole'require'date'require'win32api'defdealSecurityDialog(sNTacct,psw)@autoit=WIN32OLE.new("AutoItX3.Control")win_title="Windows安全"@autoit.WinActivate
  • 标签:弹出窗口
在利用webdriver做自动化测试中,弹出窗口的处理一直是个很棘手的问题。用auoit能很好处理弹出窗口问题,以window自带安全验证窗口为例,其他窗口的处理和这个类似。

class="java" name="code">
  require 'win32ole'
  require 'date'
  require 'win32api'

def dealSecurityDialog(sNTacct,psw)
  @autoit = WIN32OLE.new("AutoItX3.Control") 
  win_title="Windows 安全"
  @autoit.WinActivate(win_title)
  @autoit.WinWaitActive(win_title)
  @autoit.ControlSetText(win_title,"","Edit1","ailk\\#{sNTacct}")
  @autoit.ControlSetText(win_title,"","Edit2","#{psw}")
  @autoit.ControlClick(win_title,"","Button2")
end


然后可以利用win32获取弹出窗口,这样就组成了一个判断弹出窗口,处理弹出窗口的函数。
获取到窗口句柄则返回handle,为获取到则返回nil。
  def self.dialog_exists?(win_title)
    find_window = Win32API.new('user32','FindWindow',['P','P'],'L')
    handle = find_window.call(nil,'#{win_title}'.encode('GBK'))
    return handle
  end
发表评论
用户名: 匿名