2016-02-04 89 views
0

我想在挂起时重新启动Phantomjs驱动程序。我有一个重新启动如下的示例:当它挂起时需要重新启动PhantomjS

if driver.is_a?(Capybara::Poltergeist::Driver) 
driver.restart 
end 

我没有使用Poltergeist驱动程序。我使用phantomjs驱动程序对象像这样如下:

Capybara::Selenium::Driver.new(app, :browser => :phantomjs) 

我需要知道如何重新启动phantomjs驱动程序。我需要的是这样的:

Capybara.page.driver.restart. 

回答

1

page.driver.quit应该退出硒:: webdriver的实例,然后它会自动启动一个新的下一次被使用的会话。

+0

汤姆,它再次退出驱动程序和打开,但马上我得到了下面的错误,并再次退出驱动程序。 # SaeeK

+0

在capybara是从抛出的错误? –

+0

此外,如果运行少于硒2.50 - 尝试更新 –

0

您可以使用以下提到的方法重新启动phantomjs

def restart_phantomjs 
    puts "-> Restarting phantomjs: iterating through capybara sessions..." 
    session_pool = Capybara.send('session_pool') 
    session_pool.each do |mode,session| 
     msg = " => #{mode} -- " 
     driver = session.driver 
     if driver.is_a?(Capybara::Poltergeist::Driver) 
     msg += "restarting" 
     driver.restart 
     else 
     msg += "not poltergeist: #{driver.class}" 
     end 
     puts msg 
    end 
    end 
    module_function :restart_phantomjs 
end 

希望这有助于:)

+0

感谢您的回复。正如我所提到的,我没有使用Poltergiest驱动程序。所以这不会有帮助。 “汤姆沃尔普尔”已经为我提供了一个很好的解决方案,它可以部分解决问题尽管如此,仍然遇到其他问题。 – SaeeK