一起运行时我有多个功能会抛出此错误。如果我自己运行场景,则没有问题。我认为问题是在测试运行期间会生成弹出窗口并且没有正确关闭。我在 After 钩子中有代码,它会关闭所有打开的窗口,除了打开的第一个窗口。
错误:会话 [2c50a228-3ad7-a544-a6ca-5d173b86bc86] 没有驱动程序。浏览器窗口可能已关闭。(Selenium::WebDriver::Error::UnknownError)
我在代码中添加了一堆打印语句来获取当前状态:
After:Session -> #<>Capybara::Session:0x00000100f811b8>
Before:Driver -> selenium
Before:Session Object -#<>Capybara::Session :0x00000100f811b8>
之前:(开始)驱动程序对象#<>Capybara::Selenium::Driver:0x000001028ad790>
在这个特定场景失败之前的场景,这一定是罪魁祸首,但为什么呢?谁能指出我正确的方向?
钩后
#assume ONLY last window opened is to be closed
page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
page.execute_script "window.close();"
#switch back to first window opened, make it the default window now
page.driver.browser.switch_to.window(page.driver.browser.window_handles.first)
环境:capybara (2.0.3)
cucumber (1.1.9)
selenium-webdriver (2.29.0)
ruby 1.9.3p0