Class: Selenium::WebDriver::Firefox::Profile
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Firefox::Profile
- Includes:
- ProfileHelper
- Defined in:
- lib/selenium/webdriver/firefox/profile.rb
Constant Summary collapse
- VALID_PREFERENCE_TYPES =
[TrueClass, FalseClass, Integer, Float, String].freeze
- DEFAULT_PREFERENCES =
{ 'browser.newtabpage.enabled' => false, 'browser.startup.homepage' => 'about:blank', 'browser.usedOnWindows10.introURL' => 'about:blank', 'network.captive-portal-service.enabled' => false, 'security.csp.enable' => false }.freeze
Instance Attribute Summary collapse
-
#load_no_focus_lib ⇒ Object
writeonly
Sets the attribute load_no_focus_lib.
-
#log_file ⇒ Object
Returns the value of attribute log_file.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#secure_ssl ⇒ Object
writeonly
Sets the attribute secure_ssl.
Class Method Summary collapse
Instance Method Summary collapse
-
#[]=(key, value) ⇒ Object
Set a preference for this particular profile.
-
#add_extension(path, name = extension_name_for(path)) ⇒ Object
Add the extension (directory, .zip or .xpi) at the given path to the profile.
-
#initialize(model = nil) ⇒ Profile
constructor
Create a new Profile instance.
- #layout_on_disk ⇒ Object
- #port=(port) ⇒ Object
- #proxy=(proxy) ⇒ Object
Methods included from ProfileHelper
Constructor Details
#initialize(model = nil) ⇒ Profile
Create a new Profile instance
68 69 70 71 72 73 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 68 def initialize(model = nil) @model = verify_model(model) @additional_prefs = read_model_prefs @extensions = {} end |
Instance Attribute Details
#load_no_focus_lib=(value) ⇒ Object (writeonly)
Sets the attribute load_no_focus_lib
37 38 39 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 37 def load_no_focus_lib=(value) @load_no_focus_lib = value end |
#log_file ⇒ Object
Returns the value of attribute log_file.
36 37 38 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 36 def log_file @log_file end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
36 37 38 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 36 def name @name end |
#secure_ssl=(value) ⇒ Object (writeonly)
Sets the attribute secure_ssl
37 38 39 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 37 def secure_ssl=(value) @secure_ssl = value end |
Class Method Details
.decoded(json) ⇒ Object
51 52 53 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 51 def decoded(json) JSON.parse(json) end |
.from_name(name) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 44 def from_name(name) profile = ini[name] return profile if profile raise Error::WebDriverError, "unable to find profile named: #{name.inspect}" end |
.ini ⇒ Object
40 41 42 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 40 def ini @ini ||= ProfilesIni.new end |
Instance Method Details
#[]=(key, value) ⇒ Object
Set a preference for this particular profile.
94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 94 def []=(key, value) unless VALID_PREFERENCE_TYPES.any? { |e| value.is_a? e } raise TypeError, "expected one of #{VALID_PREFERENCE_TYPES.inspect}, got #{value.inspect}:#{value.class}" end if value.is_a?(String) && Util.stringified?(value) raise ArgumentError, "preference values must be plain strings: #{key.inspect} => #{value.inspect}" end @additional_prefs[key.to_s] = value end |
#add_extension(path, name = extension_name_for(path)) ⇒ Object
Add the extension (directory, .zip or .xpi) at the given path to the profile.
119 120 121 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 119 def add_extension(path, name = extension_name_for(path)) @extensions[name] = Extension.new(path) end |
#layout_on_disk ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 75 def layout_on_disk profile_dir = @model ? create_tmp_copy(@model) : Dir.mktmpdir('webdriver-profile') FileReaper << profile_dir install_extensions(profile_dir) delete_lock_files(profile_dir) delete_extensions_cache(profile_dir) update_user_prefs_in(profile_dir) profile_dir end |
#port=(port) ⇒ Object
106 107 108 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 106 def port=(port) self[WEBDRIVER_PREFS[:port]] = port end |
#proxy=(proxy) ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/selenium/webdriver/firefox/profile.rb', line 123 def proxy=(proxy) raise TypeError, "expected #{Proxy.name}, got #{proxy.inspect}:#{proxy.class}" unless proxy.is_a? Proxy case proxy.type when :manual self['network.proxy.type'] = 1 set_manual_proxy_preference 'ftp', proxy.ftp set_manual_proxy_preference 'http', proxy.http set_manual_proxy_preference 'ssl', proxy.ssl set_manual_proxy_preference 'socks', proxy.socks self['network.proxy.no_proxies_on'] = proxy.no_proxy || '' when :pac self['network.proxy.type'] = 2 self['network.proxy.autoconfig_url'] = proxy.pac when :auto_detect self['network.proxy.type'] = 4 else raise ArgumentError, "unsupported proxy type #{proxy.type}" end end |