webdrone 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db48fab19363eceeca6c08c9e3195768e08ccfc2
4
- data.tar.gz: 90562dc4b089b191f02d68dfa1cb6f5c1f46a87f
3
+ metadata.gz: f843ad2ff8378a507c4de5910f80b7f2d0d3b32f
4
+ data.tar.gz: 0d419241e89e576359e801b145a036715af7fd04
5
5
  SHA512:
6
- metadata.gz: db9db5a7125dd26846b5144ba3fe506c8c08c4b7165023cbf93ac66d8308bda9c131f977f2b8fbd8edffebd6cba81cc174b8300decd30c4ea4f5041ddc07e3d3
7
- data.tar.gz: 40ead1864e5bf65c8f12033e91b9b88973f7030244098116d2f296a2569887454e3c1b32e515f6d164ebcf9aefb0e09eb2d6d3a111874c5bfa3f1305b45021ae
6
+ metadata.gz: 604fc7fa246b1bdf980f4293ea10b00e74ea8b49a0273e954f8d8e0196dbc5878ca1976bd4d21c352070abf18eb502707e1b94f736d4d08c8d07d894f241a75f
7
+ data.tar.gz: ac8e6583792828db09921933cb89cb495169fb17a2860197f9f3989a80fad2b69a583a9b61827b08a850c6e146ecff9c6a8e2469a19c922483d02d5ab3561c21
data/lib/webdrone.rb CHANGED
@@ -18,6 +18,7 @@ require 'xpath'
18
18
  require 'rubyXL'
19
19
  require 'irb'
20
20
  require 'fileutils'
21
+ require 'binding_of_caller'
21
22
 
22
23
  module Webdrone
23
24
  def self.create(*args)
@@ -33,8 +34,9 @@ module Webdrone
33
34
  end
34
35
  end
35
36
 
36
- def self.irb_console(binding)
37
+ def self.irb_console(binding = nil)
37
38
  return if IRB.CurrentContext
39
+ binding = Kernel.binding.of_caller(1) if binding == nil
38
40
  IRB.start_session(binding)
39
41
  end
40
42
  end
@@ -2,14 +2,14 @@ module Webdrone
2
2
  class Browser
3
3
  attr_accessor :driver
4
4
 
5
- def initialize(browser: 'chrome', create_outdir: false, outdir: nil)
5
+ def initialize(browser: 'chrome', create_outdir: true, outdir: nil, timeout:, maximize: true)
6
6
  if create_outdir or outdir
7
7
  outdir ||= "webdrone_output/#{Time.new.strftime('%Y%m%d_%H%M')}"
8
8
  self.conf.outdir = outdir
9
9
  end
10
10
  if outdir != nil and browser.to_sym == :chrome
11
11
  prefs = { download: { prompt_for_download: false, default_directory: outdir } }
12
- @driver = Selenium::WebDriver.for browser.to_sym, prefs: prefs
12
+ @driver = Selenium::WebDriver.for browser.to_sym, prefs: prefs, args: ['--disable-popup-blocking']
13
13
  elsif outdir != nil and browser.to_sym == :firefox
14
14
  profile = Selenium::WebDriver::Firefox::Profile.new
15
15
  profile['startup.homepage_welcome_url.additional'] = 'about:blank'
@@ -21,6 +21,12 @@ module Webdrone
21
21
  else
22
22
  @driver = Selenium::WebDriver.for browser.to_sym
23
23
  end
24
+ self.conf.timeout = timeout if timeout
25
+ self.maximize if maximize
26
+ end
27
+
28
+ def maximize
29
+ @driver.manage.window.maximize
24
30
  end
25
31
 
26
32
  def quit
data/lib/webdrone/ctxt.rb CHANGED
@@ -27,14 +27,22 @@ module Webdrone
27
27
  @framestack << name
28
28
  @a0.driver.switch_to.frame name
29
29
  if block_given?
30
- yield
31
- @framestack.pop
32
- @a0.driver.switch_to.default_content
33
- @framestack.each { |frame| @a0.driver.switch_to.frame frame}
30
+ begin
31
+ yield
32
+ ensure
33
+ @framestack.pop
34
+ @a0.driver.switch_to.default_content
35
+ @framestack.each { |frame| @a0.driver.switch_to.frame frame}
36
+ end
34
37
  end
35
38
  name
36
39
  end
37
40
 
41
+ def reset
42
+ @a0.driver.switch_to.default_content
43
+ @ramestack = []
44
+ end
45
+
38
46
  def with_alert
39
47
  @a0.wait.for do
40
48
  yield @a0.driver.switch_to.alert
data/lib/webdrone/form.rb CHANGED
@@ -21,7 +21,6 @@ module Webdrone
21
21
  item = self.find_item(key)
22
22
  if item.tag_name == 'select'
23
23
  option = item.find_element :xpath, XPath::HTML.option(val).to_s
24
- item.click
25
24
  option.click
26
25
  else
27
26
  item.clear
data/lib/webdrone/text.rb CHANGED
@@ -39,5 +39,9 @@ module Webdrone
39
39
  def xpath(text, n: 1, all: false, visible: true)
40
40
  @a0.find.xpath(text, n: n, all: all, visible: visible).text
41
41
  end
42
+
43
+ def page_title
44
+ @a0.driver.title
45
+ end
42
46
  end
43
47
  end
@@ -1,3 +1,3 @@
1
1
  module Webdrone
2
- VERSION = "0.6.0"
2
+ VERSION = "0.7.0"
3
3
  end
data/webdrone.gemspec CHANGED
@@ -35,4 +35,5 @@ Gem::Specification.new do |spec|
35
35
  spec.add_runtime_dependency "selenium-webdriver"
36
36
  spec.add_runtime_dependency "xpath"
37
37
  spec.add_runtime_dependency "rubyXL"
38
+ spec.add_runtime_dependency "binding_of_caller"
38
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webdrone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aldrin Martoq
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-05 00:00:00.000000000 Z
11
+ date: 2015-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: binding_of_caller
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  description: See webpage for more info.
126
140
  email:
127
141
  - a@a0.cl