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 +4 -4
- data/lib/onlyoffice_webdriver_wrapper/version.rb +1 -1
- data/lib/onlyoffice_webdriver_wrapper/webdriver/click_methods.rb +5 -9
- data/lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_move_cursor_methods.rb +19 -11
- data/lib/onlyoffice_webdriver_wrapper/webdriver.rb +4 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 776391f3667781696f5c73f6b3839fa17ed3965deaaaa53e4c0717b4915f2ced
|
4
|
+
data.tar.gz: 5d9c932257c2e35e99464657ac3c00f8069a90d40bfc7ffc0d1e1c599ab3aee2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15a1d5affae01a3e6857ec9b7b592e89f9007e841f7a4d9c83043c1fc020b1086f6d9b59594f94239a47469d727db095d83187a3e2f9e25fd2caba632d958dbc
|
7
|
+
data.tar.gz: d313861c4bda34d5452b95e9caaf29a53c13899f53d16fb95d699c98ead637311ff28b67b8533a7718f746c6eeb576f078a8dd6df211f48f6f88d62a97288326
|
@@ -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
|
-
|
54
|
-
|
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
|
-
|
104
|
-
|
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
|
-
|
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
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
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-
|
14
|
+
date: 2022-07-08 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: headless
|