module Browsed::Browser
Public Instance Methods
generate_browser_id()
click to toggle source
# File lib/browsed/browser.rb, line 4 def generate_browser_id SecureRandom.hex end
is_ipad?()
click to toggle source
# File lib/browsed/browser.rb, line 50 def is_ipad? Agents.is_ipad?(self.user_agent) end
is_iphone?()
click to toggle source
# File lib/browsed/browser.rb, line 46 def is_iphone? Agents.is_iphone?(self.user_agent) end
randomize_ios_resolution()
click to toggle source
# File lib/browsed/browser.rb, line 67 def randomize_ios_resolution resolution_device = case self.device when :iphone, :android_phone :phone when :ipad, :android_tablet :tablet else self.device end random_key = Browsed::Constants::RESOLUTIONS.fetch(resolution_device, :desktop).keys.sample resolution = Browsed::Constants::RESOLUTIONS.fetch(resolution_device, :desktop)[random_key] end
randomize_resolution()
click to toggle source
# File lib/browsed/browser.rb, line 63 def randomize_resolution runs_ios? ? randomize_ios_resolution : Browsed::Constants::RESOLUTIONS.fetch(self.device, :desktop).sample end
resizable_browser?()
click to toggle source
# File lib/browsed/browser.rb, line 17 def resizable_browser? non_resizable = [:poltergeist, :selenium_chrome, :selenium_chrome_headless] !non_resizable.include?(self.driver.to_sym) end
resize!(res = nil)
click to toggle source
Resize the window separately and not based on initialization
# File lib/browsed/browser.rb, line 9 def resize!(res = nil) res ||= self.resolution if self.session && res && res.size.eql?(2) && resizable_browser? # Resolutions for Chrome & Poltergeist are set in the driver self.session&.current_window&.resize_to(res.first, res.last) # [width, height] end end
runs_ios?()
click to toggle source
# File lib/browsed/browser.rb, line 42 def runs_ios? Agents.runs_ios?(self.user_agent) end
set_resolution(res)
click to toggle source
Resolution
# File lib/browsed/browser.rb, line 55 def set_resolution(res) if res && res.is_a?(Array) self.resolution = res elsif res && res.is_a?(Symbol) && res.eql?(:randomize) self.resolution = randomize_resolution end end
set_user_agent(user_agent)
click to toggle source
User Agents
# File lib/browsed/browser.rb, line 23 def set_user_agent(user_agent) if !user_agent.to_s.empty? && !user_agent.to_sym.eql?(:randomize) self.user_agent = user_agent elsif (!user_agent.to_s.empty? && user_agent.to_sym.eql?(:randomize)) || phantomjs? case self.device when :iphone self.user_agent = Agents.random_user_agent(:phones, :iphone) when :android_phone self.user_agent = Agents.random_user_agent(:phones, :android) when :ipad self.user_agent = Agents.random_user_agent(:tablets, :ipad) when :android_tablet self.user_agent = Agents.random_user_agent(:tablets, :android) else self.user_agent = Agents.random_user_agent(self.device) end end end