eyes_selenium 3.15.24 → 3.15.25

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
  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