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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47a253fddab546c17234e5c7e2c5fcccf26dfc8107a912ccffe88048632686ea
4
- data.tar.gz: 873a53e6dc72354e42706186075d03f8540130f6bb160026b1b7df8e2784d21d
3
+ metadata.gz: f9928178651f912e702f33d64f7acfa5272849d1ec165aebef19d6383f415afd
4
+ data.tar.gz: 72d5fe781262d499a74a80f993a2c3ad9be1224be7af554fd5eba261091aa13a
5
5
  SHA512:
6
- metadata.gz: 7c941f9158ad88622735940e6ffb0164b40acc7859598ad1ee1d66b8e3c6a0fca8a51fd7c7829726f0833037878c21f9618d5fe37858fb6b7845f9c350a1190a
7
- data.tar.gz: c17e1cf3762bb57e7b5820e2ca3ce127e1245b76953aecc5378c06444752b2bebfbfb518b3661d352453e05727bb24b041f98a5b2185aafa8fd2b0a2f91e6de3
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
- chromedriver_path_cur_chrome
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 chromedriver_path_cur_chrome
47
- file_path = "#{File.dirname(__FILE__)}/chromedriver_bin/chromedriver_linux_#{chrome_version.segments.first}"
48
-
49
- return file_path if File.exist?(file_path)
50
-
51
- OnlyofficeLoggerHelper.log("Cannot file chromedriver by version #{chrome_version.version}. Using Default")
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
@@ -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.17.0'
7
+ STRING = '1.19.0'
8
8
  end
9
9
  end
@@ -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
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'net/protocol'
4
+
3
5
  module OnlyofficeWebdriverWrapper
4
6
  # Methods for working with alerts
5
7
  module WebdriverAlertHelper
@@ -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.headless_instance.nil?
64
- system_screenshot("/tmp/#{screenshot_name}.png")
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
- @headless.take_screenshot("/tmp/#{screenshot_name}.png")
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
- # Scroll list by pixel count
97
- # @param [String] list_xpath how to detect this list
98
- # @param [Integer] pixels how much to scroll
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 scroll_list_by_pixels(list_xpath, pixels)
101
- execute_javascript("$(#{dom_element_by_xpath(list_xpath)}).scrollTop(#{pixels})")
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.17.0
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-13 00:00:00.000000000 Z
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/chromedriver_linux_110
279
- - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_111
280
- - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_112
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: '2.7'
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.12
193
+ rubygems_version: 3.4.19
339
194
  signing_key:
340
195
  specification_version: 4
341
196
  summary: ONLYOFFICE Webdriver Wrapper Gem