2012-05-16 110 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一些東西 結束

相關問題