123456789_123456789_123456789_123456789_123456789_

Class: Selenium::WebDriver::ClientConfig

Relationships & Source Files
Inherits: Object
Defined in: rb/lib/selenium/webdriver/common/client_config.rb

Overview

Configuration for HTTP clients.

Class Attribute Summary

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(open_timeout: 60, read_timeout: 120, max_redirects: 20, proxy: nil, extra_headers: nil, user_agent: nil, server_url: nil) ⇒ ClientConfig

Parameters:

  • open_timeout (Numeric)

    Seconds to wait for the connection to open.

  • read_timeout (Numeric)

    Seconds to wait for a response.

  • max_redirects (Integer)

    Maximum number of redirects to follow.

  • proxy (Proxy)

    Proxy to use for the connection.

  • extra_headers (Hash)

    Additional headers to send with each request.

  • user_agent (String)

    Value to send as the User-Agent header.

  • server_url (String, URI)

    URL of the server to connect to.

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 51

def initialize(open_timeout: 60,
               read_timeout: 120,
               max_redirects: 20,
               proxy: nil,
               extra_headers: nil,
               user_agent: nil,
               server_url: nil)
  @open_timeout = open_timeout
  @read_timeout = read_timeout
  @max_redirects = max_redirects
  @proxy = proxy || proxy_from_environment
  @extra_headers = extra_headers
  @user_agent = user_agent
  self.server_url = server_url
end

Class Attribute Details

.default_extra_headers (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 30

attr_accessor :default_extra_headers

.default_user_agent (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 33

def default_user_agent
  @default_user_agent ||= "selenium/#{WebDriver::VERSION} (ruby #{Platform.os})"
end

.default_user_agent=(value) (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 31

attr_writer :default_user_agent

Instance Attribute Details

#extra_headers (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 71

def extra_headers
  @extra_headers || self.class.default_extra_headers
end

#extra_headers=(value) (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 39

attr_writer :extra_headers, :user_agent

#max_redirects (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 38

attr_accessor :open_timeout, :read_timeout, :max_redirects, :proxy

#open_timeout (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 38

attr_accessor :open_timeout, :read_timeout, :max_redirects, :proxy

#proxy (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 38

attr_accessor :open_timeout, :read_timeout, :max_redirects, :proxy

#read_timeout (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 38

attr_accessor :open_timeout, :read_timeout, :max_redirects, :proxy

#server_url (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 40

attr_reader :server_url

#server_url=(url) (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 75

def server_url=(url)
  if url.nil?
    @server_url = nil
  else
    url = url.to_s
    url += '/' unless url.end_with?('/')
    @server_url = URI.parse(url)
  end
end

#user_agent (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 67

def user_agent
  @user_agent || self.class.default_user_agent
end

#user_agent=(value) (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 39

attr_writer :extra_headers, :user_agent

Instance Method Details

#proxy_from_environment (private)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/client_config.rb', line 87

def proxy_from_environment
  proxy = ENV.fetch('http_proxy', nil) || ENV.fetch('HTTP_PROXY', nil)
  return unless proxy

  no_proxy = ENV.fetch('no_proxy', nil) || ENV.fetch('NO_PROXY', nil)
  proxy = "http://#{proxy}" unless proxy.match?(%r{\Ahttps?://})
  Proxy.new(http: proxy, no_proxy: no_proxy)
end