Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
win32ole called from watir script
Max Russell
1/10/2008 2:01:00 PM
I've been using WATiR to test a website. At one point, a VBScript
dialogue is shown which needs a Yes No response.
I found that I can manually browse to the page, and then using the
win32ole library, send a yes value to the dialogue.
require 'win32ole'
wsh = WIN32OLE.new('WScript.shell')
wsh.AppActivate('INR Check')
wsh.SendKeys('y')
however, if I use similar code within the script itself, it doesn't seem
to execute?
I'm nt quite sure how to proceed with this..
--
Posted via
http://www.ruby-...
.
2 Answers
Max Russell
1/11/2008 1:06:00 PM
0
Max Russell wrote:
> I've been using WATiR to test a website. At one point, a VBScript
> dialogue is shown which needs a Yes No response.
>
> I found that I can manually browse to the page, and then using the
> win32ole library, send a yes value to the dialogue.
>
> require 'win32ole'
>
> wsh = WIN32OLE.new('WScript.shell')
> wsh.AppActivate('INR Check')
> wsh.SendKeys('y')
>
>
> however, if I use similar code within the script itself, it doesn't seem
> to execute?
>
> I'm nt quite sure how to proceed with this..
One thing I've been wondering is whether I should spawn a new process or
thread in order to deal with this?
--
Posted via
http://www.ruby-...
.
David Mullet
1/11/2008 1:43:00 PM
0
Max Russell wrote:
> Max Russell wrote:
>> I've been using WATiR to test a website. At one point, a VBScript
>> dialogue is shown which needs a Yes No response.
>>
>> I found that I can manually browse to the page, and then using the
>> win32ole library, send a yes value to the dialogue.
>>
>> require 'win32ole'
>>
>> wsh = WIN32OLE.new('WScript.shell')
>> wsh.AppActivate('INR Check')
>> wsh.SendKeys('y')
>>
>>
>> however, if I use similar code within the script itself, it doesn't seem
>> to execute?
>>
>> I'm nt quite sure how to proceed with this..
>
> One thing I've been wondering is whether I should spawn a new process or
> thread in order to deal with this?
I use similar code in some of my scripts:
sleep(1)
if ws.AppActivate("Security Alert")
ws.SendKeys "{ENTER}"
sleep(1)
end
It runs within the script's main thread, following the code that might
trigger the security alert dialog.
Note that WScript.Shell's AppActivate method returns true if it was able
to activate the window, and false otherwise. You can use this to
determine if the AppActivate method was successful before attempting the
SendKeys method. You may also need to toss in a momentary sleep to allow
the dialog to appear before calling AppActivate.
There may be a more elegant solution (loop with timeout, watir method,
etc.), but this is successful for me.
Hope that helps.
David
http://rubyonwindows.bl...
--
Posted via
http://www.ruby-...
.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
win32ole called from watir script
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password