在Watir中整合AutoIt處理JavaScript彈出視窗的方法

TIB發表於2010-01-24

以下例子整合了AutoIt,在單獨的執行緒中監控和處理JavaScript彈出視窗:

 

require 'watir'

#require 'win32ole'  # already included if you use 'require watir'

#

# Function to look for popups

def check_for_popups

    autoit = WIN32OLE.new('AutoItX3.Control')

    #

    # Do forever - assumes popups could occur anywhere/anytime in your application.

    loop do

        # Look for window with given title. Give up after 1 second.

        ret = autoit.WinWait('Microsoft Internet Explorer', '', 1)

        #

        # If window found, send appropriate keystroke (e.g. {enter}, {Y}, {N}).

        if (ret==1) then autoit.Send('{enter}') end

        #

        # Take a rest to avoid chewing up cycles and give another thread a go.

        # Then resume the loop.

        sleep(3)

    end

end

#

# MAIN APPLICATION CODE

# Setup popup handler

$popup = Thread.new { check_for_popups }  # start popup handler

at_exit { Thread.kill($popup) }           # kill thread on exit of main application

#

# Main application code follows

ie = Watir::IE.new

ie.goto("http://localhost:88/Test3.html")

ie.link(:text,"Click Here").click

 

 

 

相關文章