eyes_selenium 3.15.24 → 3.15.25

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
  SHA256:
3
- metadata.gz: c13515c08d5df301235c5ddaff6f9a4f522c6db6f664aea7edd834697e34f0cc
4
- data.tar.gz: 27abc6fb23e9bca2deac8fbc3db72fdf3de1ff8cb5a38b05136ac80f998cef7b
3
+ metadata.gz: 88093a081f4f6f894ff270f5fd485d58a5ee72a5db793b3e81611ee7e374ab4b
4
+ data.tar.gz: 775674e679494be0b7ff1b69f0cce61a30e3ee22926bec75550a070a7a6ee276
5
5
  SHA512:
6
- metadata.gz: 18b2abd60b6354cf1e95441d2c886977d580e8d7bc1a282c4219e250cd1ff308f6db9ffa96b31cd7f3c18c0612fe97079516d8f6527806effd8aeea48d049139
7
- data.tar.gz: 96d2d5547c8a26d6bd83ca4e8a98490df332397964f227b377dd00adbcdb87377f0cb079e4bfe19a66fbd6ce07c1b089bcef83e8a455151514773e2547ca62d6
6
+ metadata.gz: 0010be372dcb9524baa55868a0a8b2a5804b9474586b79a2ac8070daab34397884327b82470cf88bb57814983ce4fb3a027f85815309589566be966eb99fec94
7
+ data.tar.gz: a147aa412ffdb8309e0616536797206b587c2f7dace5c52b70628b7be199d81e26584c711266191741bb7269c61b75568f2f30b963beea545da60c06c5b6144d
@@ -4,6 +4,7 @@ module Applitools
4
4
  module Selenium
5
5
  class Target
6
6
  include Applitools::FluentInterface
7
+ include Applitools::MatchLevelSetter
7
8
  class << self
8
9
  def frame(element)
9
10
  new.frame(element)
@@ -56,7 +57,18 @@ module Applitools
56
57
  ignored_regions << case args.first
57
58
  when Applitools::Region
58
59
  proc { args.first.padding(requested_padding) }
59
- when Applitools::Selenium::Element, ::Selenium::WebDriver::Element
60
+ when ::Selenium::WebDriver::Element
61
+ proc do |driver, return_element = false|
62
+ region = applitools_element_from_selenium_element(driver, args.first)
63
+ padding_proc = proc do |region|
64
+ Applitools::Region.from_location_size(
65
+ region.location, region.size
66
+ ).padding(requested_padding)
67
+ end
68
+ next region, padding_proc if return_element
69
+ padding_proc.call(region)
70
+ end
71
+ when Applitools::Selenium::Element
60
72
  proc do |_driver, return_element = false|
61
73
  region = args.first
62
74
  padding_proc = proc do |region|
@@ -118,7 +130,17 @@ module Applitools
118
130
  args.first.padding(requested_padding)
119
131
  when ::Applitools::Region
120
132
  Applitools::FloatingRegion.any(args.shift, *args).padding(requested_padding)
121
- when ::Selenium::WebDriver::Element, Applitools::Selenium::Element
133
+ when ::Selenium::WebDriver::Element
134
+ proc do |driver, return_element = false|
135
+ args_dup = args.dup
136
+ region = applitools_element_from_selenium_element(driver, args_dup.shift)
137
+ padding_proc = proc do |region|
138
+ Applitools::FloatingRegion.any(region, *args_dup).padding(requested_padding)
139
+ end
140
+ next region, padding_proc if return_element
141
+ padding_proc.call(region)
142
+ end
143
+ when ::Applitools::Selenium::Element
122
144
  proc do |_driver, return_element = false|
123
145
  args_dup = args.dup
124
146
  region = args_dup.shift
@@ -167,17 +189,17 @@ module Applitools
167
189
  end
168
190
 
169
191
  def exact(*args)
170
- return match_level(Applitools::MatchLevel::EXACT) if args.empty?
171
- raise Applitools::EyesError('Target.exact() is supposed to be called without args!')
172
- # region = process_region(args)
173
- # exact_regions << region
174
- # self
192
+ match_level(Applitools::MatchLevel::EXACT, *args)
175
193
  end
176
194
 
177
195
  def process_region(*args)
178
196
  r = args.first
179
197
  case r
180
- when Applitools::Region, ::Selenium::WebDriver::Element, Applitools::Selenium::Element
198
+ when ::Selenium::WebDriver::Element
199
+ proc do |driver|
200
+ applitools_element_from_selenium_element(driver, args.dup.first)
201
+ end
202
+ when Applitools::Region, Applitools::Selenium::Element
181
203
  proc { r }
182
204
  else
183
205
  proc do |driver|
@@ -188,7 +210,9 @@ module Applitools
188
210
  end
189
211
 
190
212
  def match_level(*args)
191
- value = args.shift
213
+ match_level = args.shift
214
+ exact_options = args.shift || {}
215
+ (options[:match_level], options[:exact]) = match_level_with_exact(match_level, exact_options)
192
216
  self
193
217
  end
194
218
 
@@ -219,7 +243,11 @@ module Applitools
219
243
  def region(*args)
220
244
  handle_frames
221
245
  self.region_to_check = case args.first
222
- when Applitools::Selenium::Element, Applitools::Region, ::Selenium::WebDriver::Element
246
+ when ::Selenium::WebDriver::Element
247
+ proc do |driver|
248
+ applitools_element_from_selenium_element(driver, args.first)
249
+ end
250
+ when Applitools::Selenium::Element, Applitools::Region
223
251
  proc { args.first }
224
252
  when String
225
253
  proc do |driver|
@@ -299,6 +327,11 @@ module Applitools
299
327
  frames << frame_or_element
300
328
  self.frame_or_element = nil
301
329
  end
330
+
331
+ def applitools_element_from_selenium_element(driver, selenium_element)
332
+ xpath = driver.execute_script(Applitools::Selenium::Scripts::GET_ELEMENT_XPATH_JS, selenium_element)
333
+ driver.find_element(:xpath, xpath)
334
+ end
302
335
  end
303
336
  end
304
337
  end
@@ -80,9 +80,6 @@ module Applitools
80
80
  end
81
81
 
82
82
  def check(tag, target)
83
- script = <<-END
84
- var callback = arguments[arguments.length - 1]; return (#{Applitools::Selenium::Scripts::PROCESS_RESOURCES})().then(JSON.stringify).then(callback, function(err) {callback(err.stack || err.toString())});
85
- END
86
83
  script = <<-END
87
84
  #{Applitools::Selenium::Scripts::PROCESS_PAGE_AND_POLL} return __processPageAndPoll();
88
85
  END
@@ -121,16 +118,6 @@ module Applitools
121
118
  end
122
119
 
123
120
  def get_regions_x_paths(target)
124
- # regions_hash = collect_selenium_regions(target).each do |k,v|
125
- # v.map! do |el|
126
- # if [::Selenium::WebDriver::Element, Applitools::Selenium::Element].include?(el.class)
127
- # xpath = driver.execute_script(Applitools::Selenium::Scripts::GET_ELEMENT_XPATH_JS, el)
128
- # web_element_region = Applitools::Selenium::WebElementRegion.new(xpath, k)
129
- # self.region_to_check = web_element_region if k ==:target && size_mod == 'selector'
130
- # web_element_region
131
- # end
132
- # end.compact!
133
- # end
134
121
  result = []
135
122
  collect_selenium_regions(target).each do |el, v|
136
123
  if [::Selenium::WebDriver::Element, Applitools::Selenium::Element].include?(el.class)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Applitools
4
- VERSION = '3.15.24'.freeze
4
+ VERSION = '3.15.25'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eyes_selenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.15.24
4
+ version: 3.15.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Applitools Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-12 00:00:00.000000000 Z
11
+ date: 2019-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eyes_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.15.24
19
+ version: 3.15.25
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.15.24
26
+ version: 3.15.25
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement