2012-05-16 43 views
1

好的,所以我有一个脚本可以打开一个弹出窗口并在窗口上执行一些操作。我在窗口打开时遇到了一些麻烦,但是脚本停止运行,直到我手动点击窗口,然后找到它并且我可以继续。弹出窗口阻止watir-webdriver脚本执行任何进一步的操作

我使用的是最新的Watir-的webdriver和ChromeDriver(因为它执行远远高于IE或Firefox更快)

#problem area of the script 
#use send keys due to modal window 
b.frame(name: 'MainBody').link(text: 'Add Event').send_keys :return 
b.window(title: 'Add Event').use do 
    #do some stuff 
end 
b.window(title: 'Add Event').wait_while_present 

按钮被点击后,窗口将打开,并没有任何反应。一个我手动点击窗口,剧本唤醒并继续前进。

我试着把一个puts语句放在send_keys之后,但直到我点击窗口后才会执行,而且这些操作都不起作用,直到手动点击窗口。我也尝试了一种猴子补丁的click_no_wait方法来解救。

任何想法?

回答

3

脏的方法是:

b.windows.last.use  #to switch to the new tab/pop-up window 
     b.window(title: 'Add Event').use do 
      #do some stuff 
     end 
    b.windows.last.close #to close the new tab/pop-up window 
    b.windows.first.use  #to return to initial tab/pop-up window 

任职的100%的时间我。

+0

我给一个镜头。它似乎局限于Windows XP上的ChromeDriver,当我在OS X上的Firefox上运行它时,它工作得很好。所有这些旧技术有时会变得棘手。 – DVG

0

也许它试图去太快?你可以尝试像

b.window(标题:“添加事件”)when_present.use做 #do一些东西 结束

相关问题