pagetience 0.4.2 → 0.4.3

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: 047639c7bb485cabfaede710c9398d3d9f469fcc
4
- data.tar.gz: cf3130de096efde5b85cfb5776213a3b1160161d
3
+ metadata.gz: 5eac7b7a1c4e399056163e220d41dad6229c4d98
4
+ data.tar.gz: 642e76f08a4f94ada3105ceb28bddad504839497
5
5
  SHA512:
6
- metadata.gz: 77dddb513326bd516ccb69b36fc101182afb900b105fe4eb9288dbc794e4528a3f4d6d13ce2461a3b050dbcea5de2b19b87cc46ce9336e30f707e3c97b85c5f9
7
- data.tar.gz: b7fe6cfc8b03af4fa6f83769b6ecd0bd7c99bcf037dbed82f2ef85ca5e25845b4d1abbfa92aa1690f66638cbd27b62758826b7202ce8533b58ac3256ab917fd3
6
+ metadata.gz: 38f2d56062f34381671157714cb75984718b70c1de58f09a949ada684b7a7a09c16b445caa14033a8aae4d08fb5cbd2c21c027a37296853879dd0b83be0de47c
7
+ data.tar.gz: 41bed978caa6b10c4941671d6a56a4d71a0f6df27caa908d25828857fe33aad5444c24126339c80220dbcf6413032b9dbe14edb5c49224dd82111dd680f58201
@@ -60,6 +60,8 @@ module Pagetience
60
60
  @_waiting_timeout = _waiting_timeout || Pagetience.config.timeout
61
61
  @_waiting_polling = _waiting_polling || Pagetience.config.polling
62
62
  @_required_elements = _required_elements || []
63
+ @_present_elements = []
64
+ @_missing_elements = []
63
65
  wait_for_required_elements
64
66
  end
65
67
 
@@ -71,13 +73,22 @@ module Pagetience
71
73
  # @param [Fixnum] timeout Time to wait in seconds
72
74
  # @param [Fixnum] polling How often to poll
73
75
  def wait_for_required_elements(timeout=nil, polling=nil)
74
- opts = {
75
- timeout: timeout,
76
- polling: polling,
77
- msg: "Timed out after polling every #{:polling}s for #{:timeout}s waiting for the page to be loaded."
78
- }
76
+ msg = -> do
77
+ %{Timed out after polling every #{@_waiting_polling}s for #{@_waiting_timeout}s waiting for the page to be loaded.
78
+ Elements present: #{@_present_elements}
79
+ Elements missing: #{@_missing_elements}}
80
+ end
81
+
82
+ opts = { timeout: timeout, polling: polling, msg: msg }
79
83
  wait_for(opts) do
80
- @loaded = true unless @_required_elements.any? { |e| !@element_platform.is_element_present? e }
84
+ @_missing_elements = []
85
+ @_required_elements.each do |e|
86
+ if !@element_platform.is_element_present?(e) && !@_missing_elements.include?(e)
87
+ @_missing_elements << e
88
+ @_present_elements = @_required_elements - @_missing_elements
89
+ end
90
+ end
91
+ @loaded = @_missing_elements.empty?
81
92
  end
82
93
  end
83
94
 
@@ -29,6 +29,7 @@ module Pagetience
29
29
  @timeout = @timeout - @polling
30
30
  end
31
31
 
32
+ msg = msg.send(:call) if msg.is_a? Proc
32
33
  raise Pagetience::TimeoutError, msg unless @latest_result == expected
33
34
 
34
35
  @latest_result
@@ -1,3 +1,3 @@
1
1
  module Pagetience
2
- VERSION = '0.4.2'
2
+ VERSION = '0.4.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagetience
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek McNeil
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-31 00:00:00.000000000 Z
11
+ date: 2016-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler