挂起时需要重新启动PhantomjS

时间:2016-02-04 15:27:41

标签: ruby selenium-webdriver phantomjs capybara site-prism

我想在挂起时重新启动我的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. 

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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

希望这会有所帮助:)