onlyoffice_webdriver_wrapper 1.17.0 → 1.19.0
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 +4 -4
- data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chrome_version_helper.rb +10 -7
- data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/{chromedriver_linux_110 → chromedriver_linux_114} +0 -0
- data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/{chromedriver_linux_111 → chromedriver_linux_115} +0 -0
- data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/{chromedriver_linux_112 → chromedriver_linux_116} +0 -0
- data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_mac +0 -0
- data/lib/onlyoffice_webdriver_wrapper/version.rb +1 -1
- data/lib/onlyoffice_webdriver_wrapper/webdriver/scroll_methods.rb +22 -0
- data/lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_alert_helper.rb +2 -0
- data/lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_screenshot_helper.rb +4 -13
- data/lib/onlyoffice_webdriver_wrapper/webdriver.rb +12 -7
- metadata +8 -153
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f9928178651f912e702f33d64f7acfa5272849d1ec165aebef19d6383f415afd
|
|
4
|
+
data.tar.gz: 72d5fe781262d499a74a80f993a2c3ad9be1224be7af554fd5eba261091aa13a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d4372b1f24a39362c1cb47980a4b6575655048947c68e2d3b17ce79c4f28f1b49d15674aee039ada8c89dbdf7082a07b5fb81be1951c54dd02388ed3455a91e9
|
|
7
|
+
data.tar.gz: b8559ca2393335b34af1597031fff713163f805418e2ea2d5c183f2f66723b23c5c3f53f6564221db1f3f78effd950a87f199af11dd7122006cd86cc9634a6fd
|
|
@@ -27,7 +27,7 @@ module OnlyofficeWebdriverWrapper
|
|
|
27
27
|
return default_mac if OSHelper.mac? || force_os == :mac
|
|
28
28
|
return default_linux if (chrome_version == unknown_chrome_version) || force_os == :linux
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
chromedriver_path_for_version(chrome_version.segments.first)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
private
|
|
@@ -42,13 +42,16 @@ module OnlyofficeWebdriverWrapper
|
|
|
42
42
|
Dir["#{File.dirname(__FILE__)}/chromedriver_bin/chromedriver_linux_*"].max
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
+
# @param [String] major_version major version of chrome
|
|
45
46
|
# @return [String] path to chromedriver of version
|
|
46
|
-
def
|
|
47
|
-
file_path = "#{File.dirname(__FILE__)}/chromedriver_bin/chromedriver_linux_#{
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
def chromedriver_path_for_version(major_version)
|
|
48
|
+
file_path = "#{File.dirname(__FILE__)}/chromedriver_bin/chromedriver_linux_#{major_version}"
|
|
49
|
+
if File.exist?(file_path)
|
|
50
|
+
OnlyofficeLoggerHelper.log("Chromedriver found by version #{major_version}. Using it")
|
|
51
|
+
return file_path
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
OnlyofficeLoggerHelper.log("Cannot file chromedriver by version #{major_version}. Using Default")
|
|
52
55
|
default_linux
|
|
53
56
|
end
|
|
54
57
|
end
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_mac
CHANGED
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OnlyofficeWebdriverWrapper
|
|
4
|
+
# Methods for scrolling page
|
|
5
|
+
module ScrollMethods
|
|
6
|
+
# Scroll list by pixel count
|
|
7
|
+
# @param [String] list_xpath how to detect this list
|
|
8
|
+
# @param [Integer] pixels how much to scroll
|
|
9
|
+
# @return [void]
|
|
10
|
+
def scroll_list_by_pixels(list_xpath, pixels)
|
|
11
|
+
element = dom_element_by_xpath(list_xpath)
|
|
12
|
+
execute_javascript("$(#{element}).scrollTop(#{pixels})")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Get current element scroll position
|
|
16
|
+
# @param [String] list_xpath how to detect this list
|
|
17
|
+
# @return [Float] position in pixels
|
|
18
|
+
def current_scroll_position(xpath)
|
|
19
|
+
execute_javascript("return $(#{dom_element_by_xpath(xpath)}).scrollTop()")
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -60,21 +60,12 @@ module OnlyofficeWebdriverWrapper
|
|
|
60
60
|
link = get_screenshot_and_upload("#{screenshot_folder}/#{screenshot_name}.png")
|
|
61
61
|
rescue StandardError => e
|
|
62
62
|
OnlyofficeLoggerHelper.log("Error in get screenshot: #{e}. Trying to get headless screenshot")
|
|
63
|
-
if @headless.
|
|
64
|
-
|
|
65
|
-
begin
|
|
66
|
-
link = publish_screenshot("/tmp/#{screenshot_name}.png")
|
|
67
|
-
rescue StandardError => e
|
|
68
|
-
OnlyofficeLoggerHelper.log("Error in get screenshot: #{e}. System screenshot #{link}")
|
|
69
|
-
end
|
|
63
|
+
if @headless.running?
|
|
64
|
+
@headless.take_screenshot("#{screenshot_folder}/#{screenshot_name}.png")
|
|
70
65
|
else
|
|
71
|
-
|
|
72
|
-
begin
|
|
73
|
-
link = publish_screenshot("/tmp/#{screenshot_name}.png")
|
|
74
|
-
rescue StandardError => e
|
|
75
|
-
OnlyofficeLoggerHelper.log("Error in get screenshot: #{e}. Headless screenshot #{link}")
|
|
76
|
-
end
|
|
66
|
+
system_screenshot("#{screenshot_folder}/#{screenshot_name}.png")
|
|
77
67
|
end
|
|
68
|
+
link = publish_screenshot("#{screenshot_folder}/#{screenshot_name}.png")
|
|
78
69
|
end
|
|
79
70
|
"screenshot: #{link}"
|
|
80
71
|
end
|
|
@@ -10,6 +10,7 @@ require_relative 'helpers/firefox_helper'
|
|
|
10
10
|
require_relative 'webdriver/click_methods'
|
|
11
11
|
require_relative 'webdriver/element_getters'
|
|
12
12
|
require_relative 'webdriver/get_text_methods'
|
|
13
|
+
require_relative 'webdriver/scroll_methods'
|
|
13
14
|
require_relative 'webdriver/select_list_methods'
|
|
14
15
|
require_relative 'webdriver/wait_until_methods'
|
|
15
16
|
require_relative 'webdriver/webdriver_alert_helper'
|
|
@@ -35,6 +36,7 @@ module OnlyofficeWebdriverWrapper
|
|
|
35
36
|
include ChromeHelper
|
|
36
37
|
include ClickMethods
|
|
37
38
|
include GetTextMethods
|
|
39
|
+
include ScrollMethods
|
|
38
40
|
include SelectListMethods
|
|
39
41
|
include FirefoxHelper
|
|
40
42
|
include RubyHelper
|
|
@@ -55,6 +57,8 @@ module OnlyofficeWebdriverWrapper
|
|
|
55
57
|
include WebdriverBrowserLogHelper
|
|
56
58
|
# @return [Integer] Default timeout for waiting to file to download
|
|
57
59
|
TIMEOUT_FILE_DOWNLOAD = 100
|
|
60
|
+
# @return [Array<Symbol>] list of supported browsers
|
|
61
|
+
SUPPORTED_BROWSERS = %i[firefox chrome].freeze
|
|
58
62
|
# @return [Array, String] default switches for chrome
|
|
59
63
|
attr_accessor :driver
|
|
60
64
|
# @return [Symbol] browser to use
|
|
@@ -73,6 +77,7 @@ module OnlyofficeWebdriverWrapper
|
|
|
73
77
|
def initialize(browser = :firefox, params = {})
|
|
74
78
|
raise WebdriverSystemNotSupported, 'Your OS is not 64 bit. It is not supported' unless os_64_bit?
|
|
75
79
|
|
|
80
|
+
ensure_supported_browser(browser)
|
|
76
81
|
@device = params.fetch(:device, :desktop_linux)
|
|
77
82
|
@record_video = params.fetch(:record_video, true)
|
|
78
83
|
@headless = HeadlessHelper.new(record_video: record_video)
|
|
@@ -87,18 +92,18 @@ module OnlyofficeWebdriverWrapper
|
|
|
87
92
|
@driver = start_firefox_driver
|
|
88
93
|
when :chrome
|
|
89
94
|
@driver = start_chrome_driver
|
|
90
|
-
else
|
|
91
|
-
raise("Unknown Browser: #{browser}")
|
|
92
95
|
end
|
|
93
96
|
@browser_running = true
|
|
94
97
|
end
|
|
95
98
|
|
|
96
|
-
#
|
|
97
|
-
# @param [
|
|
98
|
-
# @
|
|
99
|
+
# Ensure that browser is supported
|
|
100
|
+
# @param [Symbol] browser to check
|
|
101
|
+
# @raise [RuntimeError] if browser is not supported
|
|
99
102
|
# @return [void]
|
|
100
|
-
def
|
|
101
|
-
|
|
103
|
+
def ensure_supported_browser(browser)
|
|
104
|
+
return if SUPPORTED_BROWSERS.include?(browser)
|
|
105
|
+
|
|
106
|
+
raise("Unknown Browser: #{browser}")
|
|
102
107
|
end
|
|
103
108
|
|
|
104
109
|
# Open dropdown selector, like 'Color Selector', which has no element id
|
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.
|
|
4
|
+
version: 1.19.0
|
|
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: 2023-04
|
|
14
|
+
date: 2023-09-04 00:00:00.000000000 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: headless
|
|
@@ -117,152 +117,6 @@ dependencies:
|
|
|
117
117
|
- - "~>"
|
|
118
118
|
- !ruby/object:Gem::Version
|
|
119
119
|
version: '7'
|
|
120
|
-
- !ruby/object:Gem::Dependency
|
|
121
|
-
name: overcommit
|
|
122
|
-
requirement: !ruby/object:Gem::Requirement
|
|
123
|
-
requirements:
|
|
124
|
-
- - "~>"
|
|
125
|
-
- !ruby/object:Gem::Version
|
|
126
|
-
version: '0'
|
|
127
|
-
type: :development
|
|
128
|
-
prerelease: false
|
|
129
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
130
|
-
requirements:
|
|
131
|
-
- - "~>"
|
|
132
|
-
- !ruby/object:Gem::Version
|
|
133
|
-
version: '0'
|
|
134
|
-
- !ruby/object:Gem::Dependency
|
|
135
|
-
name: rake
|
|
136
|
-
requirement: !ruby/object:Gem::Requirement
|
|
137
|
-
requirements:
|
|
138
|
-
- - "~>"
|
|
139
|
-
- !ruby/object:Gem::Version
|
|
140
|
-
version: '13'
|
|
141
|
-
type: :development
|
|
142
|
-
prerelease: false
|
|
143
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
144
|
-
requirements:
|
|
145
|
-
- - "~>"
|
|
146
|
-
- !ruby/object:Gem::Version
|
|
147
|
-
version: '13'
|
|
148
|
-
- !ruby/object:Gem::Dependency
|
|
149
|
-
name: rspec
|
|
150
|
-
requirement: !ruby/object:Gem::Requirement
|
|
151
|
-
requirements:
|
|
152
|
-
- - "~>"
|
|
153
|
-
- !ruby/object:Gem::Version
|
|
154
|
-
version: '3'
|
|
155
|
-
type: :development
|
|
156
|
-
prerelease: false
|
|
157
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
158
|
-
requirements:
|
|
159
|
-
- - "~>"
|
|
160
|
-
- !ruby/object:Gem::Version
|
|
161
|
-
version: '3'
|
|
162
|
-
- !ruby/object:Gem::Dependency
|
|
163
|
-
name: rubocop
|
|
164
|
-
requirement: !ruby/object:Gem::Requirement
|
|
165
|
-
requirements:
|
|
166
|
-
- - "~>"
|
|
167
|
-
- !ruby/object:Gem::Version
|
|
168
|
-
version: '1'
|
|
169
|
-
type: :development
|
|
170
|
-
prerelease: false
|
|
171
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
172
|
-
requirements:
|
|
173
|
-
- - "~>"
|
|
174
|
-
- !ruby/object:Gem::Version
|
|
175
|
-
version: '1'
|
|
176
|
-
- !ruby/object:Gem::Dependency
|
|
177
|
-
name: rubocop-packaging
|
|
178
|
-
requirement: !ruby/object:Gem::Requirement
|
|
179
|
-
requirements:
|
|
180
|
-
- - "~>"
|
|
181
|
-
- !ruby/object:Gem::Version
|
|
182
|
-
version: '0'
|
|
183
|
-
type: :development
|
|
184
|
-
prerelease: false
|
|
185
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
186
|
-
requirements:
|
|
187
|
-
- - "~>"
|
|
188
|
-
- !ruby/object:Gem::Version
|
|
189
|
-
version: '0'
|
|
190
|
-
- !ruby/object:Gem::Dependency
|
|
191
|
-
name: rubocop-performance
|
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
|
193
|
-
requirements:
|
|
194
|
-
- - "~>"
|
|
195
|
-
- !ruby/object:Gem::Version
|
|
196
|
-
version: '1'
|
|
197
|
-
type: :development
|
|
198
|
-
prerelease: false
|
|
199
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
200
|
-
requirements:
|
|
201
|
-
- - "~>"
|
|
202
|
-
- !ruby/object:Gem::Version
|
|
203
|
-
version: '1'
|
|
204
|
-
- !ruby/object:Gem::Dependency
|
|
205
|
-
name: rubocop-rake
|
|
206
|
-
requirement: !ruby/object:Gem::Requirement
|
|
207
|
-
requirements:
|
|
208
|
-
- - "~>"
|
|
209
|
-
- !ruby/object:Gem::Version
|
|
210
|
-
version: '0'
|
|
211
|
-
type: :development
|
|
212
|
-
prerelease: false
|
|
213
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
214
|
-
requirements:
|
|
215
|
-
- - "~>"
|
|
216
|
-
- !ruby/object:Gem::Version
|
|
217
|
-
version: '0'
|
|
218
|
-
- !ruby/object:Gem::Dependency
|
|
219
|
-
name: rubocop-rspec
|
|
220
|
-
requirement: !ruby/object:Gem::Requirement
|
|
221
|
-
requirements:
|
|
222
|
-
- - "~>"
|
|
223
|
-
- !ruby/object:Gem::Version
|
|
224
|
-
version: '2'
|
|
225
|
-
type: :development
|
|
226
|
-
prerelease: false
|
|
227
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
228
|
-
requirements:
|
|
229
|
-
- - "~>"
|
|
230
|
-
- !ruby/object:Gem::Version
|
|
231
|
-
version: '2'
|
|
232
|
-
- !ruby/object:Gem::Dependency
|
|
233
|
-
name: simplecov-cobertura
|
|
234
|
-
requirement: !ruby/object:Gem::Requirement
|
|
235
|
-
requirements:
|
|
236
|
-
- - "~>"
|
|
237
|
-
- !ruby/object:Gem::Version
|
|
238
|
-
version: '2'
|
|
239
|
-
type: :development
|
|
240
|
-
prerelease: false
|
|
241
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
242
|
-
requirements:
|
|
243
|
-
- - "~>"
|
|
244
|
-
- !ruby/object:Gem::Version
|
|
245
|
-
version: '2'
|
|
246
|
-
- !ruby/object:Gem::Dependency
|
|
247
|
-
name: yard
|
|
248
|
-
requirement: !ruby/object:Gem::Requirement
|
|
249
|
-
requirements:
|
|
250
|
-
- - "~>"
|
|
251
|
-
- !ruby/object:Gem::Version
|
|
252
|
-
version: '0'
|
|
253
|
-
- - ">="
|
|
254
|
-
- !ruby/object:Gem::Version
|
|
255
|
-
version: 0.9.20
|
|
256
|
-
type: :development
|
|
257
|
-
prerelease: false
|
|
258
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
259
|
-
requirements:
|
|
260
|
-
- - "~>"
|
|
261
|
-
- !ruby/object:Gem::Version
|
|
262
|
-
version: '0'
|
|
263
|
-
- - ">="
|
|
264
|
-
- !ruby/object:Gem::Version
|
|
265
|
-
version: 0.9.20
|
|
266
120
|
description: ONLYOFFICE Webdriver Wrapper Gem. Used in QA
|
|
267
121
|
email:
|
|
268
122
|
- shockwavenn@gmail.com
|
|
@@ -275,9 +129,9 @@ files:
|
|
|
275
129
|
- lib/onlyoffice_webdriver_wrapper/helpers/bin/geckodriver
|
|
276
130
|
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper.rb
|
|
277
131
|
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chrome_version_helper.rb
|
|
278
|
-
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/
|
|
279
|
-
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/
|
|
280
|
-
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/
|
|
132
|
+
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_114
|
|
133
|
+
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_115
|
|
134
|
+
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_116
|
|
281
135
|
- lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_mac
|
|
282
136
|
- lib/onlyoffice_webdriver_wrapper/helpers/firefox_helper.rb
|
|
283
137
|
- lib/onlyoffice_webdriver_wrapper/helpers/firefox_helper/save_to_disk_files.list
|
|
@@ -293,6 +147,7 @@ files:
|
|
|
293
147
|
- lib/onlyoffice_webdriver_wrapper/webdriver/click_methods.rb
|
|
294
148
|
- lib/onlyoffice_webdriver_wrapper/webdriver/element_getters.rb
|
|
295
149
|
- lib/onlyoffice_webdriver_wrapper/webdriver/get_text_methods.rb
|
|
150
|
+
- lib/onlyoffice_webdriver_wrapper/webdriver/scroll_methods.rb
|
|
296
151
|
- lib/onlyoffice_webdriver_wrapper/webdriver/select_list_methods.rb
|
|
297
152
|
- lib/onlyoffice_webdriver_wrapper/webdriver/wait_until_methods.rb
|
|
298
153
|
- lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_alert_helper.rb
|
|
@@ -328,14 +183,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
328
183
|
requirements:
|
|
329
184
|
- - ">="
|
|
330
185
|
- !ruby/object:Gem::Version
|
|
331
|
-
version: '
|
|
186
|
+
version: '3.0'
|
|
332
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
333
188
|
requirements:
|
|
334
189
|
- - ">="
|
|
335
190
|
- !ruby/object:Gem::Version
|
|
336
191
|
version: '0'
|
|
337
192
|
requirements: []
|
|
338
|
-
rubygems_version: 3.4.
|
|
193
|
+
rubygems_version: 3.4.19
|
|
339
194
|
signing_key:
|
|
340
195
|
specification_version: 4
|
|
341
196
|
summary: ONLYOFFICE Webdriver Wrapper Gem
|