webdrone 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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