Class: Webdrone::Browser

Inherits:
Object
  • Object
show all
Defined in:
lib/webdrone/clic.rb,
lib/webdrone/conf.rb,
lib/webdrone/ctxt.rb,
lib/webdrone/exec.rb,
lib/webdrone/find.rb,
lib/webdrone/form.rb,
lib/webdrone/html.rb,
lib/webdrone/mark.rb,
lib/webdrone/open.rb,
lib/webdrone/shot.rb,
lib/webdrone/text.rb,
lib/webdrone/vrfy.rb,
lib/webdrone/wait.rb,
lib/webdrone/xlsx.rb,
lib/webdrone/browser.rb

Constant Summary collapse

@@firefox_profile =
@@chrome_prefs = nil

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(browser: 'firefox', create_outdir: true, outdir: nil, timeout:, developer: false, maximize: true, error: :raise_report, chrome_prefs: nil, firefox_profile: nil) ⇒ Browser

Returns a new instance of Browser.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/webdrone/browser.rb', line 28

def initialize(browser: 'firefox', create_outdir: true, outdir: nil, timeout:, developer: false, maximize: true, error: :raise_report, chrome_prefs: nil, firefox_profile: nil)
  if create_outdir or outdir
    outdir ||= File.join("webdrone_output", Time.new.strftime('%Y%m%d_%H%M%S'))
    self.conf.outdir = outdir
  end
  outdir = File.join(Dir.pwd, outdir) if outdir != nil and not Pathname.new(outdir).absolute?
  if outdir != nil and browser.to_sym == :chrome
    chrome_prefs = Browser.chrome_prefs if chrome_prefs == nil
    chrome_prefs[:download][:default_directory] = outdir
    @driver = Selenium::WebDriver.for browser.to_sym, prefs: chrome_prefs, args: ['--disable-popup-blocking']
  elsif outdir != nil and browser.to_sym == :firefox
    firefox_profile = Browser.firefox_profile if firefox_profile == nil
    downdir = OS.windows? ? outdir.gsub("/", "\\") : outdir
    firefox_profile['browser.download.dir'] = downdir
    @driver = Selenium::WebDriver.for browser.to_sym, profile: firefox_profile
  else
    @driver = Selenium::WebDriver.for browser.to_sym
  end
  self.conf.error = error
  self.conf.developer = developer
  self.conf.timeout = timeout if timeout
  self.maximize if maximize
end

Instance Attribute Details

#driverObject

Returns the value of attribute driver.



4
5
6
# File 'lib/webdrone/browser.rb', line 4

def driver
  @driver
end

Class Method Details

.chrome_prefsObject



21
22
23
24
25
26
# File 'lib/webdrone/browser.rb', line 21

def self.chrome_prefs
  if @@chrome_prefs == nil
    @@chrome_prefs = { download: { prompt_for_download: false } }
  end
  @@chrome_prefs
end

.firefox_profileObject



6
7
8
9
10
11
12
13
14
15
# File 'lib/webdrone/browser.rb', line 6

def self.firefox_profile
  if @@firefox_profile == nil
    @@firefox_profile = Selenium::WebDriver::Firefox::Profile.new
    @@firefox_profile['startup.homepage_welcome_url.additional'] = 'about:blank'
    @@firefox_profile['browser.download.folderList'] = 2
    @@firefox_profile['browser.download.manager.showWhenStarting'] = false
    @@firefox_profile['browser.helperApps.neverAsk.saveToDisk'] = "images/jpeg, application/pdf, application/octet-stream, application/download"
  end
  @@firefox_profile
end

.firefox_profile=(firefox_profile) ⇒ Object



17
18
19
# File 'lib/webdrone/browser.rb', line 17

def self.firefox_profile=(firefox_profile)
  @@firefox_profile = firefox_profile
end

Instance Method Details

#clicObject



3
4
5
# File 'lib/webdrone/clic.rb', line 3

def clic
  @clic ||= Clic.new self
end

#confObject



3
4
5
# File 'lib/webdrone/conf.rb', line 3

def conf
  @conf ||= Conf.new self
end

#ctxtObject



3
4
5
# File 'lib/webdrone/ctxt.rb', line 3

def ctxt
  @ctxt ||= Ctxt.new self
end

#execObject



3
4
5
# File 'lib/webdrone/exec.rb', line 3

def exec
  @exec ||= Exec.new self
end

#findObject



3
4
5
# File 'lib/webdrone/find.rb', line 3

def find
  @find ||= Find.new self
end

#formObject



3
4
5
# File 'lib/webdrone/form.rb', line 3

def form
  @form ||= Form.new self
end

#htmlObject



3
4
5
# File 'lib/webdrone/html.rb', line 3

def html
  @html ||= Html.new self
end

#markObject



3
4
5
# File 'lib/webdrone/mark.rb', line 3

def mark
  @mark ||= Mark.new self
end

#maximizeObject



52
53
54
# File 'lib/webdrone/browser.rb', line 52

def maximize
  @driver.manage.window.maximize
end

#openObject



3
4
5
# File 'lib/webdrone/open.rb', line 3

def open
  @open ||= Open.new self
end

#quitObject



56
57
58
# File 'lib/webdrone/browser.rb', line 56

def quit
  @driver.quit
end

#shotObject



3
4
5
# File 'lib/webdrone/shot.rb', line 3

def shot
  @shot ||= Shot.new self
end

#textObject



3
4
5
# File 'lib/webdrone/text.rb', line 3

def text
  @text ||= Text.new self
end

#vrfyObject



3
4
5
# File 'lib/webdrone/vrfy.rb', line 3

def vrfy
  @vrfy ||= Vrfy.new self
end

#waitObject



3
4
5
# File 'lib/webdrone/wait.rb', line 3

def wait
  @wait ||= Wait.new self
end

#xlsxObject



3
4
5
# File 'lib/webdrone/xlsx.rb', line 3

def xlsx
  @xlsx ||= Xlsx.new self
end