1

好的,所以我有一个脚本应该打开一个弹出窗口并在该窗口上执行一些操作。我在窗口打开的地方遇到了一些麻烦,但是脚本停止,直到我手动单击窗口,然后它找到它,我可以继续。

我正在使用最新的 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

单击按钮后,窗口打开,没有任何反应。我手动单击窗口,脚本会重新唤醒并继续前进。

我尝试在 send_keys 之后放置一个 puts 语句,但是直到我单击窗口之后它才会执行,并且在手动单击窗口之前这些语句也不起作用。我还尝试了一个猴子修补的 click_no_wait 方法来救援。

有任何想法吗?

4

2 回答 2

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% 的时间为我工作。

于 2012-05-23T13:29:36.823 回答
0

也许它试图走得太快?你可以尝试类似的东西

b.window(title: 'Add Event').when_present.use do #do some stuff end

于 2012-05-28T22:01:29.933 回答