class Speedos::Page

Public Instance Methods

driver() click to toggle source
# File lib/speedos/page.rb, line 34
def driver
  @driver ||= reset_driver
end
firefox_profile() click to toggle source
# File lib/speedos/page.rb, line 26
def firefox_profile
  profile       = Selenium::WebDriver::Firefox::Profile.new
  profile.proxy = server_proxy.selenium_proxy
  profile["network.proxy.ssl"]      = server_proxy.host
  profile["network.proxy.ssl_port"] = server_proxy.port
  profile
end
get_har() click to toggle source
# File lib/speedos/page.rb, line 18
def get_har
  server_proxy.har
end
is(value) { || ... } click to toggle source
# File lib/speedos/page.rb, line 51
def is value
  raise "Page name cannot be empty" if value.empty?
  server_proxy.new_page value
  yield
end
new_har() click to toggle source
# File lib/speedos/page.rb, line 22
def new_har
  server_proxy.new_har "", capture_headers: true
end
reset_driver() click to toggle source
# File lib/speedos/page.rb, line 38
def reset_driver
  Capybara.register_driver :selenium do |app|
    http_client         = Selenium::WebDriver::Remote::Http::Default.new
    http_client.timeout = 300
    Capybara::Selenium::Driver.new(app,
      :profile     => firefox_profile,
      :http_client => http_client,
    )
  end
  Capybara.default_driver = :selenium
  @driver = Capybara::Session.new(:selenium)
end
server() click to toggle source
# File lib/speedos/page.rb, line 3
def server
  if !@server
    @server = BrowserMob::Proxy::Server.new(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'browsermob-proxy-2.0-beta-8', 'bin', 'browsermob-proxy'))
    @server.start
  end
  @server
end
server_proxy() click to toggle source
# File lib/speedos/page.rb, line 11
def server_proxy
  if !@proxy
    @proxy = server.create_proxy
  end
  @proxy
end