onlyoffice_webdriver_wrapper 1.8.0 → 1.8.1

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