挂起时需要重启 PhantomjS

Need to Restart PhantomjS when it hangs

我想在挂起时重新启动我的 Phantomjs 驱动程序。我有一个重启 poltergiest 的例子如下:

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

我没有使用 Poltergeist 驱动程序。我正在使用如下所示的 phantomjs 驱动程序对象:

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

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

Capybara.page.driver.restart. 

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

您可以使用下面提到的方法重启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

希望这对您有所帮助:)