onlyoffice_webdriver_wrapper 1.8.0 → 1.8.1

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: bb66b9cb0b1d1d9c2c1b073c87c8448f219ab606167cf04fc07098fb1b9ab52c
4
- data.tar.gz: dcc8a129fd4bb6c1bf03cb3c7512e02307b1c468a57692b0cccfaf367013a810
3
+ metadata.gz: 776391f3667781696f5c73f6b3839fa17ed3965deaaaa53e4c0717b4915f2ced
4
+ data.tar.gz: 5d9c932257c2e35e99464657ac3c00f8069a90d40bfc7ffc0d1e1c599ab3aee2
5
5
  SHA512:
6
- metadata.gz: 9d291a4d9e4cb76071c29f99ff9e406aed808acadd2da20b8a4809da3104ec6787632a46049af95def7b6ea631a1a345f180e7313297089fc369d13ffa43eefe
7
- data.tar.gz: 79450930ff1f94e966076dd0ad4c34ea8a88ca746b373dd6505dfc7f1f888b2cd8fb6deac3f2f96d46d763ead26d60dee27bddbe40e1a60540ff0cbc79f89052
6
+ metadata.gz: 15a1d5affae01a3e6857ec9b7b592e89f9007e841f7a4d9c83043c1fc020b1086f6d9b59594f94239a47469d727db095d83187a3e2f9e25fd2caba632d958dbc
7
+ data.tar.gz: d313861c4bda34d5452b95e9caaf29a53c13899f53d16fb95d699c98ead637311ff28b67b8533a7718f746c6eeb576f078a8dd6df211f48f6f88d62a97288326
@@ -4,6 +4,6 @@ module OnlyofficeWebdriverWrapper
4
4
  # Module for storing version data
5
5
  module Version
6
6
  # @return [String] Current stable version of gem
7
- STRING = '1.8.0'
7
+ STRING = '1.8.1'
8
8
  end
9
9
  end
@@ -50,10 +50,8 @@ module OnlyofficeWebdriverWrapper
50
50
  # @return [nil]
51
51
  def click_on_locator_coordinates(xpath_name, right_by, down_by)
52
52
  wait_until_element_visible(xpath_name)
53
- element = @driver.find_element(:xpath, xpath_name)
54
- shift_to_zero = move_to_shift_to_top_left(xpath_name)
55
- @driver.action.move_to(element, right_by.to_i - shift_to_zero.x, down_by.to_i - shift_to_zero.y).perform
56
- @driver.action.move_to(element, right_by.to_i - shift_to_zero.x, down_by.to_i - shift_to_zero.y).click.perform
53
+ move_to_driver_action(xpath_name, right_by, down_by).perform
54
+ move_to_driver_action(xpath_name, right_by, down_by).click.perform
57
55
  end
58
56
 
59
57
  # Click on one of several which displayed
@@ -100,10 +98,8 @@ module OnlyofficeWebdriverWrapper
100
98
  # @return [nil]
101
99
  def right_click_on_locator_coordinates(xpath_name, right_by = nil, down_by = nil)
102
100
  wait_until_element_visible(xpath_name)
103
- element = @driver.find_element(:xpath, xpath_name)
104
- shift_to_zero = move_to_shift_to_top_left(xpath_name)
105
- @driver.action.move_to(element, right_by.to_i - shift_to_zero.x, down_by.to_i - shift_to_zero.y).perform
106
- @driver.action.move_to(element, right_by.to_i - shift_to_zero.x, down_by.to_i - shift_to_zero.y).context_click.perform
101
+ move_to_driver_action(xpath_name, right_by, down_by).perform
102
+ move_to_driver_action(xpath_name, right_by, down_by).context_click.perform
107
103
  end
108
104
 
109
105
  # Perform double_click on element
@@ -121,7 +117,7 @@ module OnlyofficeWebdriverWrapper
121
117
  # @return [nil]
122
118
  def double_click_on_locator_coordinates(xpath_name, right_by, down_by)
123
119
  wait_until_element_visible(xpath_name)
124
- @driver.action.move_to(@driver.find_element(:xpath, xpath_name), right_by.to_i, down_by.to_i).double_click.perform
120
+ move_to_driver_action(xpath_name, right_by, down_by).double_click.perform
125
121
  end
126
122
  end
127
123
  end
@@ -14,13 +14,9 @@ module OnlyofficeWebdriverWrapper
14
14
  # * +y2+ - shift vector y coordinate
15
15
  # * +mouse_release+ - release mouse after move
16
16
  def drag_and_drop(xpath, x1, y1, x2, y2, mouse_release: true)
17
- canvas = get_element(xpath)
18
- shift_to_zero = move_to_shift_to_top_left(xpath)
19
- move_action = @driver.action
20
- .move_to(canvas, x1.to_i - shift_to_zero.x,
21
- y1.to_i - shift_to_zero.y)
22
- .click_and_hold
23
- .move_by(x2, y2)
17
+ move_action = move_to_driver_action(xpath, x1, y1)
18
+ .click_and_hold
19
+ .move_by(x2, y2)
24
20
  move_action = move_action.release if mouse_release
25
21
 
26
22
  move_action.perform
@@ -56,12 +52,11 @@ module OnlyofficeWebdriverWrapper
56
52
  # @return [nil]
57
53
  def mouse_over(xpath_name, x_coordinate = 0, y_coordinate = 0)
58
54
  wait_until_element_present(xpath_name)
59
- shift_to_zero = move_to_shift_to_top_left(xpath_name)
60
- @driver.action.move_to(@driver.find_element(:xpath, xpath_name),
61
- x_coordinate.to_i - shift_to_zero.x,
62
- y_coordinate.to_i - shift_to_zero.y).perform
55
+ move_to_driver_action(xpath_name, x_coordinate, y_coordinate).perform
63
56
  end
64
57
 
58
+ private
59
+
65
60
  # Since v4.3.0 of `webdriver` gem `move_to` method is moving
66
61
  # from the center of the element
67
62
  # Add additional negative shift if this version is used
@@ -73,5 +68,18 @@ module OnlyofficeWebdriverWrapper
73
68
  Dimensions.new(0, 0)
74
69
  end
75
70
  end
71
+
72
+ # Generate action to move cursor to element
73
+ # @param [String] xpath xpath to move
74
+ # @param [Integer] right_by shift vector x coordinate
75
+ # @param [Integer] down_by shift vector y coordinate
76
+ # @return [Selenium::WebDriver::ActionBuilder] object to perform actions
77
+ def move_to_driver_action(xpath, right_by, down_by)
78
+ element = @driver.find_element(:xpath, xpath)
79
+ shift_to_zero = move_to_shift_to_top_left(xpath)
80
+ @driver.action.move_to(element,
81
+ right_by.to_i - shift_to_zero.x,
82
+ down_by.to_i - shift_to_zero.y)
83
+ end
76
84
  end
77
85
  end
@@ -169,8 +169,7 @@ module OnlyofficeWebdriverWrapper
169
169
  set_style_attribute("#{xpath_name}/button", 'display', 'inline-block')
170
170
  set_style_attribute(xpath_name, 'display', 'block')
171
171
  else
172
- shift_to_zero = move_to_shift_to_top_left(xpath_name)
173
- @driver.action.move_to(element, horizontal_shift - shift_to_zero.x, vertical_shift - shift_to_zero.y).click.perform
172
+ move_to_driver_action(xpath_name, horizontal_shift, vertical_shift).click.perform
174
173
  end
175
174
  end
176
175
 
@@ -183,14 +182,11 @@ module OnlyofficeWebdriverWrapper
183
182
  # @return [void]
184
183
  def action_on_locator_coordinates(xpath_name, right_by, down_by, action = :click, times = 1)
185
184
  wait_until_element_visible(xpath_name)
186
- element = @driver.find_element(:xpath, xpath_name)
187
- shift_to_zero = move_to_shift_to_top_left(xpath_name)
188
- (0...times).inject(@driver.action.move_to(element,
189
- right_by.to_i - shift_to_zero.x,
190
- down_by.to_i - shift_to_zero.y)) { |acc, _elem| acc.send(action) }.perform
185
+ (0...times).inject(move_to_driver_action(xpath_name, right_by, down_by)) { |acc, _elem| acc.send(action) }.perform
191
186
  end
192
187
 
193
188
  # Check if element present on page
189
+ # It may be visible or invisible, but should be present in DOM tree
194
190
  # @param [String] xpath_name to find element
195
191
  # @return [Boolean] result of check
196
192
  def element_present?(xpath_name)
@@ -248,6 +244,7 @@ module OnlyofficeWebdriverWrapper
248
244
  end
249
245
 
250
246
  # Check if element visible on page
247
+ # It should be part of DOM and should be visible on current visible part of page
251
248
  # @param [String] xpath_name element to find
252
249
  # @return [Boolean] result of check
253
250
  def element_visible?(xpath_name)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onlyoffice_webdriver_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ONLYOFFICE
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-07-07 00:00:00.000000000 Z
14
+ date: 2022-07-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: headless