gridium 1.1.22 → 1.1.23

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/lib/driver.rb +12 -9
  3. data/lib/element.rb +4 -6
  4. data/lib/page.rb +17 -3
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ea2b898ea5a8be72f31c433401071f2d4692a69
4
- data.tar.gz: 4a84839da2476ff78fbe304e8c5c3f83fbb2195b
3
+ metadata.gz: 99d9a0327b2766d11841ca658aa1d89dacfeebaa
4
+ data.tar.gz: 1a722adc617c41d31257a7e92aa1eb16839e1d87
5
5
  SHA512:
6
- metadata.gz: cb38da3bf6325e64e3cc70b8a83cba75e74c59c460cdac16e2a4427769bd0acee34e0de7deacef74bcf059d8d2703bd2f6fd4839a65fc95949b05851e50a240f
7
- data.tar.gz: 4a0595e92668463c43c40afad7207ccf28557c981672cf18bb80f0b5f98821dea239c090eb98ef3f7e10e8975a9bc1610193800804b142a01bdc6237ada7001c
6
+ metadata.gz: d89cbb80dcaca9d578e5575621716a61d0e696b59939b85041d163a7ef5b4da295508504be504997364aeed004d24b5dbad58ed3e308cb05d79e8a9962da21e5
7
+ data.tar.gz: 13b284321a6065f614b86d2e111c6d7129f4311be765ab27acff7067df715327978f69d4d892e9ecab8abc45906932fa8ac0a72d56db3a7cac26082bd262416f
@@ -89,16 +89,19 @@ class Driver
89
89
  :server => log_level
90
90
  },
91
91
  chrome_options: {
92
- 'args' => ['--start-maximized'],
93
- 'prefs' => {
94
- 'download': {
95
- 'prompt_for_download': false,
96
- 'directory_upgrade': true,
97
- 'default_directory': Dir.pwd
92
+ args: ['--start-maximized', '--privileged', '--disable-web-security'],
93
+ prefs: {
94
+ # Need configurable download directory. Currently not supported on Selenium Grid
95
+ download: {
96
+ prompt_for_download: false,
97
+ directory_upgrade: true,
98
+ default_directory: Dir.pwd,
99
+ extensions_to_open: ""
98
100
  },
99
- 'save_file': {
100
- 'default_directory': Dir.pwd
101
- }
101
+ save_file: {
102
+ default_directory: Dir.pwd
103
+ },
104
+ credentials_enable_service: false
102
105
  }
103
106
  }
104
107
  )
@@ -10,6 +10,7 @@ class Element
10
10
  @name = name
11
11
  @by = by
12
12
  @locator = locator
13
+ @timeout = opts[:timeout] || Gridium.config.element_timeout
13
14
  @element_screenshot = nil #used to store the path of element screenshots for comparison
14
15
 
15
16
  # wrapped driver
@@ -23,8 +24,6 @@ class Element
23
24
 
24
25
  #how long to wait between clearing an input and sending keys to it
25
26
  @text_padding_time = 0.15
26
-
27
- @default_timeout = Gridium.config.element_timeout
28
27
  end
29
28
 
30
29
  def to_s
@@ -32,8 +31,7 @@ class Element
32
31
  end
33
32
 
34
33
  def element(opts = {})
35
- timeout = opts[:timeout].nil? ? @default_timeout : opts[:timeout]
36
-
34
+ timeout = opts[:timeout] || @timeout
37
35
  if stale?
38
36
  wait = Selenium::WebDriver::Wait.new :timeout => timeout, :interval => 1
39
37
  if Gridium.config.visible_elements_only
@@ -80,13 +78,13 @@ class Element
80
78
  # ================ #
81
79
 
82
80
  # soft failure, will not kill test immediately
83
- def verify(timeout: Gridium.config.element_timeout)
81
+ def verify(timeout: @timeout)
84
82
  Log.debug('[GRIDIUM::Element] Verifying new element...')
85
83
  ElementVerification.new(self, timeout)
86
84
  end
87
85
 
88
86
  # hard failure, will kill test immediately
89
- def wait_until(timeout: Gridium.config.element_timeout)
87
+ def wait_until(timeout: @timeout)
90
88
  Log.debug('[GRIDIUM::Element] Waiting for new element...')
91
89
  ElementVerification.new(self, timeout, fail_test: true)
92
90
  end
@@ -48,8 +48,10 @@ module Gridium
48
48
  end
49
49
  end
50
50
 
51
- def self.has_link?(linktext)
52
- wait = Selenium::WebDriver::Wait.new(:timeout => 5)
51
+ def self.has_link?(linktext, opts = {})
52
+ timeout = opts[:timeout] || 5
53
+ wait = Selenium::WebDriver::Wait.new(:timeout => timeout)
54
+
53
55
  begin
54
56
  wait.until {Driver.driver.find_element(:link_text, linktext).enabled?}
55
57
  rescue Exception => exception
@@ -58,6 +60,18 @@ module Gridium
58
60
  end
59
61
  end
60
62
 
63
+ def self.has_button?(button_text, opts = {})
64
+ timeout = opts[:timeout] || 5
65
+ wait = Selenium::WebDriver::Wait.new(:timeout => timeout)
66
+
67
+ begin
68
+ elem = Element.new("#{button_text} button", :xpath, "//button[contains(., \"#{button_text}\")]", timeout: timeout)
69
+ wait.until {elem.enabled?}
70
+ rescue Exception => exception
71
+ Log.debug("[GRIDIUM::Page] has_button? is false because this exception was rescued: #{exception}")
72
+ return false
73
+ end
74
+ end
61
75
 
62
76
  def self.has_text?(text, opts = {})
63
77
  has_flash?(text, opts)
@@ -68,7 +82,7 @@ module Gridium
68
82
  wait = Selenium::WebDriver::Wait.new(:timeout => timeout)
69
83
  begin
70
84
  if opts[:visible]
71
- element = wait.until { Element.new("Finding text '#{text}'", :xpath, "//*[text()=\"#{text}\"]").displayed? }
85
+ element = wait.until { Element.new("Finding text '#{text}'", :xpath, "//*[text()=\"#{text}\"]", timeout: timeout).displayed? }
72
86
  else
73
87
  element = wait.until { Driver.html.include? text }
74
88
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gridium
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.22
4
+ version: 1.1.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Urban
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-01 00:00:00.000000000 Z
11
+ date: 2017-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  version: '0'
182
182
  requirements: []
183
183
  rubyforge_project:
184
- rubygems_version: 2.6.11
184
+ rubygems_version: 2.6.12
185
185
  signing_key:
186
186
  specification_version: 4
187
187
  summary: This Gem is used to make building Selenium Tests without Capybara Easier.