弹出窗口停止watir-webdriver脚本执行任何进一步操作

时间:2012-05-16 14:45:29

标签: ruby watir-webdriver selenium-chromedriver

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

我正在使用最新的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方法进行救援。

有什么想法吗?

2 个答案:

答案 0 :(得分: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%的时间都在工作。

答案 1 :(得分:0)

也许它试图走得太快?你可以试试像

这样的东西

b.window(标题:'添加事件')。when_present.use   #do一些东西 端