2009-11-18 9 views
0

J'ai une page Web qui a un script onbeforeunload qui invite l'utilisateur quand ils prennent une action qui permettrait de s'éloigner de la page en cours.Comment cliquer sur l'invite onbeforeunload dans le test Watir?

Comment interagir avec cette fenêtre en utilisant Watir? Mon approche actuelle ressemble à ceci:

$ie.link(:text, 'Dashboard').click_no_wait 

hwnd = $ie.enabled_popup(10) 
assert(hwnd, 'The expected \'leave this page?\' popup was not shown') 

win = WinClicker.new 
win.makeWindowActive(hwnd) 
win.clickWindowsButton_hwnd(hwnd, "OK") 

Le problème est que si je l'utilise « cliquez sans attendre » la fenêtre est pas créé, et les temps de test sur. Si j'utilise "click" alors la popup est créée, mais le test se bloque après son ouverture.

Des suggestions?

+0

La communauté de Watir est petite, vous devriez aussi la publier sur http://groups.google.com/group/watir-general/ –

Répondre

0

Voulez-vous affirmer un message de boîte de dialogue?
J'ai essayé votre code, mais je n'ai pas trouvé de solution.
Ceci est d'essayer d'attraper le dialogue puis, lorsque popup, obtenir msg pendant 5sec. interrogation par 1sec.

$ie.link(:text, 'Dashboard').click_no_wait 
@autoit = WIN32OLE.new('AutoItX3.Control') 
    5.times do 
    if @autoit.WinWait('Windows Internet Explorer','',1)==1 then 
     @autoit.WinActivate('Windows Internet Explorer',"") 
     @dialog_text = @autoit.WinGetText('Windows Internet Explorer',"") 
     dialog_pop = "YES" 
     break 
    else 
     sleep(1) 
     dialog_pop = "NO" 
    end 
    end