zoukankan      html  css  js  c++  java
  • Watir RAutomation VS AutoIt to deal with popup

    Watir使用过程中,经常遇到的弹出框分为几类:

    1. Alert

    2. Confirm

    3. Prompt

    4. File select

    Watir 处理弹出框,有很多方法,可以应用 AutoIt来处理,也可以通过 RAutomation来处理。

    AutoIt的局限性是无法跨平台,所以在Watir 4.0中被摒弃了;

    RAutomation 对中文的处理存在一定的局限性,对于新手来说,常常无法找到问题的解决方案。

    Watir-classic 中的 Watir::Alert 方法,是无法起作用的。

    我对AutoIt,Rautomation处理弹出框做了一个总结:

    AutoIt处理方法如下:

    #encoding:utf-8
    require 'watir-classic'
    class PopupWindow
        def initialize( )
            @autoit = WIN32OLE.new('AutoItX3.Control')
        end
    
        #popup_title: 弹出窗口的标题
        def push_alert_button(popup_title)
            @autoit.WinWaitActive(popup_title, "")
            @autoit.ControlClick(popup_title, "", "Button1")
            @autoit.WinWaitClose(popup_title)
        end
    
        #popup_title: 弹出窗口的标题
        #button_name: 弹出窗口上要点击的按钮名称
        def push_confirm_button(popup_title, button_name)
            @autoit.WinWaitActive(popup_title, "")
            @autoit.ControlClick(popup_title, "", "[text:#{button_name}]")
            @autoit.WinWaitClose(popup_title)
        end
    
        #popup_title: 弹出窗口的标题
        #input: 在弹出窗口的输入口中要输入的值
        #button_name: 弹出窗口上要点击的按钮名称
        def push_prompt_button(popup_title, input, button_name)
            @autoit.WinWaitActive(popup_title, "")
            @autoit.ControlSetText(popup_title, "", "Edit1", input)
            @autoit.ControlClick(popup_title, "", "[text:#{button_name}]")
            @autoit.WinWaitClose(popup_title)
        end
    
        #popup_title: 弹出窗口的标题
        #file_path: 在弹出窗口的输入口中要输入的文件路径
        #button_name: 弹出窗口上要点击的按钮名称
        def select_file(popup_title, file_path, button_name="打开(&O)")
            @autoit.WinWaitActive(popup_title, "")
            @autoit.ControlSetText(popup_title, "", "Edit1", file_path)
            @autoit.ControlClick(popup_title, "", "[text:#{button_name}]")
            @autoit.WinWaitClose(popup_title)
        end
    end
    

     如何应用 RAutomation 处理 Watir IE 弹出框?

    #encoding=utf-8
    require "rautomation"
    require "watir-classic"
    #text means the English text which only displayed on the Alert popup window
    def click_alert(text)
        window = RAutomation::Window.new(:text => /#{text}/i)
        window.wait_until_present
        window.activate
        puts window.button(:class =>"Button", :index =>0).exists?
        window.button(:class =>"Button", :index =>0).click
    end
    
    #text means the English text which only displayed on the Confirm popup window
    #value means the value you want to input on Prompt window
    def set_prompt(text, value)
        window = RAutomation::Window.new(:text => /#{text}/i)
        window.wait_until_present
        window.activate
        text_field = window.text_field(:class =>"Edit", :index=>0)
        text_field.set(value)
        window.button(:class =>"Button", :index =>0).click
    end
    
    #text means the English text which only displayed on the Confirm popup window
    def click_confirm(text)
        window = RAutomation::Window.new(:text => /#{text}/i)
        window.wait_until_present
        window.activate
        puts window.button(:class =>"Button", :index =>0).exists?
        window.button(:class =>"Button", :index =>0).click
    end
    #text means the English text which only displayed on the Select file popup window
    #path means the file path you want to select
    def select_file(text, path)
        window = RAutomation::Window.new(:text => /#{text}/i)
        window.wait_until_present
        window.activate
        window.text_field(:class =>"Edit", :index =>0).set(path)
        window.button(:class =>"Button", :index =>0).click
    end
  • 相关阅读:
    回发或回调参数无效。 问题的解决和思考
    母板页中的引用的图片,JS,css等路径问题
    Solution: 题解 CF1196E Connected Component on a Chessboard
    01/05/2020 我注册了博客园 I enrolled in Cnblogs.
    Basic Thought / Data Structure: 前缀和 Prefix Sum
    Basic Thought / Data Structure: 差分 Difference
    DotNet中异步编程(APM)的研究1异步编程介绍
    关于atl server 的感受(3) 一个我自以为豪的应用
    自己的博客,竟然要自己搜出来,太久没来了。
    关于atl server 的感受(2)
  • 原文地址:https://www.cnblogs.com/autotest/p/3671140.html
Copyright © 2011-2022 走看看