onlyoffice_webdriver_wrapper 1.24.0 → 1.26.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: a5a94ed0ce58d72ed1aeb6068d56b09ab71fb982616c64d556ed8cbbb1343227
4
- data.tar.gz: 79706c16aad85d980b3eb5ae6ca5afddea8f2ea549b6ea221d61573d4e0205a7
3
+ metadata.gz: 0aceaacb5bf7e66061ddafda2df0e9d06e12a77ec871bb3bedbc9b96967b8d0a
4
+ data.tar.gz: c98dd310419eed1cbd358f0f856b6dd1cdfad64b2d2984564e6b4171165846d8
5
5
  SHA512:
6
- metadata.gz: 511ff3a3bbf496bb9b0d3b3aff458891a2ef61f461b1416b947e46c60f3625dfd3fbb572d4474b39a18eff8bc17da4430cfc50a618e2e54d034b50c0d603c8c0
7
- data.tar.gz: ad0ee6f6af4eb0dd472d550b70b04f94f731ea11f48d63559fdbd6f4b724edcbcf744d4ace173fe63c1ce64283dabf45f9675e1a88bd5dce46b20e24d3a2f6c8
6
+ metadata.gz: d83017ba4e1e435c85beceff3a4b9148782c63617f640e0b1474686fb143bb29a131824c0a7570461832081ea712963477d3025913941afa122904a1e87f809e
7
+ data.tar.gz: ce0b93eb08737ad701497762ec174947d052d39394d300352477f8f95b1dcc4b6e1a716136f41fd08d37e7aa22a5b79e498d5d42c2add58404c1bd4254481a20
@@ -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.24.0'
7
+ STRING = '1.26.0'
8
8
  end
9
9
  end
@@ -12,24 +12,30 @@ module OnlyofficeWebdriverWrapper
12
12
 
13
13
  # Click on locator
14
14
  # @param xpath_name [String] xpath to click
15
- # @param by_javascript [True, False] should be clicked by javascript
15
+ # @param by_javascript [True, False] should be clicked by javascript or by webdriver action
16
16
  # @param count [Integer] count of clicks
17
- def click_on_locator(xpath_name, by_javascript = false, count: 1)
17
+ # @param after_timeout [Integer] timeout after click
18
+ def click_on_locator(xpath_name, by_javascript = false, count: 1, after_timeout: 0)
18
19
  element = get_element(xpath_name)
19
20
  return webdriver_error("Element with xpath: #{xpath_name} not found") if element.nil?
20
21
 
21
- if by_javascript
22
- execute_javascript("#{dom_element_by_xpath(xpath_name)}.click();")
23
- else
24
- begin
25
- count.times { element.click }
26
- rescue Selenium::WebDriver::Error::ElementNotInteractableError => e
27
- webdriver_error(e.class,
28
- 'Selenium::WebDriver::Error::ElementNotInteractableError: ' \
29
- "element not visible for xpath: #{xpath_name}")
30
- rescue StandardError => e
31
- webdriver_error(e.class, "UnknownError #{e.message} #{xpath_name}")
22
+ click_function = if by_javascript
23
+ -> { execute_javascript("#{dom_element_by_xpath(xpath_name)}.click();") }
24
+ else
25
+ -> { element.click }
26
+ end
27
+
28
+ begin
29
+ count.times do
30
+ click_function.call
31
+ sleep(after_timeout)
32
32
  end
33
+ rescue Selenium::WebDriver::Error::ElementNotInteractableError => e
34
+ webdriver_error(e.class,
35
+ 'Selenium::WebDriver::Error::ElementNotInteractableError: ' \
36
+ "element not visible for xpath: #{xpath_name}")
37
+ rescue StandardError => e
38
+ webdriver_error(e.class, "UnknownError #{e.message} #{xpath_name}")
33
39
  end
34
40
  end
35
41
 
@@ -22,7 +22,7 @@ module OnlyofficeWebdriverWrapper
22
22
  @driver.find_elements(:xpath, xpath_name).each do |element|
23
23
  return element if element.displayed?
24
24
  end
25
- rescue Selenium::WebDriver::Error::InvalidSelectorError
25
+ rescue Selenium::WebDriver::Error::InvalidSelectorError, Selenium::WebDriver::Error::JavascriptError
26
26
  webdriver_error(Selenium::WebDriver::Error::InvalidSelectorError,
27
27
  "Invalid Selector: get_element_by_display('#{xpath_name}')")
28
28
  end
@@ -50,22 +50,16 @@ module OnlyofficeWebdriverWrapper
50
50
  end
51
51
  end
52
52
 
53
- if click_on_it
54
- click_on_locator(xpath_name)
55
- sleep 0.2
56
- end
53
+ click_on_locator(xpath_name, after_timeout: 0.2) if click_on_it
57
54
 
58
55
  if (@browser != :chrome && !by_action) || by_element_send_key
59
56
  element.send_keys text_to_send
60
- elsif text_to_send != ''
61
- if text_to_send.is_a?(String)
62
- text_to_send.chars.each do |symbol|
63
- @driver.action.send_keys(symbol).perform
64
- end
65
- else
66
- webdriver_bug_8179_workaround(text_to_send)
67
- end
57
+ else
58
+ send_text_by_chars(text_to_send)
68
59
  end
60
+ rescue Selenium::WebDriver::Error::JavascriptError
61
+ webdriver_error(Selenium::WebDriver::Error::InvalidElementStateError,
62
+ "Invalid state of element: #{xpath_name}")
69
63
  end
70
64
 
71
65
  # Type text to input
@@ -171,5 +165,20 @@ module OnlyofficeWebdriverWrapper
171
165
  @driver.action.key_up(modifier).perform
172
166
  end
173
167
  end
168
+
169
+ # Send text by chars
170
+ # @param [String] text_to_send text to type
171
+ # @return [void]
172
+ def send_text_by_chars(text_to_send)
173
+ return if text_to_send == ''
174
+
175
+ if text_to_send.is_a?(String)
176
+ text_to_send.chars.each do |symbol|
177
+ @driver.action.send_keys(symbol).perform
178
+ end
179
+ else
180
+ webdriver_bug_8179_workaround(text_to_send)
181
+ end
182
+ end
174
183
  end
175
184
  end
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.24.0
4
+ version: 1.26.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: 2024-03-13 00:00:00.000000000 Z
14
+ date: 2024-04-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: headless
@@ -135,9 +135,9 @@ files:
135
135
  - lib/onlyoffice_webdriver_wrapper/helpers/bin/geckodriver
136
136
  - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper.rb
137
137
  - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chrome_version_helper.rb
138
- - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_120
139
- - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_121
140
138
  - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_122
139
+ - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_123
140
+ - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_linux_124
141
141
  - lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_mac
142
142
  - lib/onlyoffice_webdriver_wrapper/helpers/firefox_helper.rb
143
143
  - lib/onlyoffice_webdriver_wrapper/helpers/firefox_helper/save_to_disk_files.list
@@ -195,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
195
195
  - !ruby/object:Gem::Version
196
196
  version: '0'
197
197
  requirements: []
198
- rubygems_version: 3.5.6
198
+ rubygems_version: 3.5.9
199
199
  signing_key:
200
200
  specification_version: 4
201
201
  summary: ONLYOFFICE Webdriver Wrapper Gem