1

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

2 回答 2

1

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

于 2016-02-04T17:59:27.973 回答
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

希望这可以帮助 :)

于 2016-02-05T05:09:47.933 回答