onlyoffice_webdriver_wrapper 1.17.0 → 1.19.0

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