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 +4 -4
- data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/{chromedriver_linux_121 → chromedriver_linux_123} +0 -0
- data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/{chromedriver_linux_120 → chromedriver_linux_124} +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/click_methods.rb +19 -13
- data/lib/onlyoffice_webdriver_wrapper/webdriver/element_getters.rb +1 -1
- data/lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_type_helper.rb +21 -12
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0aceaacb5bf7e66061ddafda2df0e9d06e12a77ec871bb3bedbc9b96967b8d0a
|
4
|
+
data.tar.gz: c98dd310419eed1cbd358f0f856b6dd1cdfad64b2d2984564e6b4171165846d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d83017ba4e1e435c85beceff3a4b9148782c63617f640e0b1474686fb143bb29a131824c0a7570461832081ea712963477d3025913941afa122904a1e87f809e
|
7
|
+
data.tar.gz: ce0b93eb08737ad701497762ec174947d052d39394d300352477f8f95b1dcc4b6e1a716136f41fd08d37e7aa22a5b79e498d5d42c2add58404c1bd4254481a20
|
Binary file
|
Binary file
|
data/lib/onlyoffice_webdriver_wrapper/helpers/chrome_helper/chromedriver_bin/chromedriver_mac
CHANGED
Binary file
|
@@ -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
|
-
|
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
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
-
|
61
|
-
|
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.
|
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-
|
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.
|
198
|
+
rubygems_version: 3.5.9
|
199
199
|
signing_key:
|
200
200
|
specification_version: 4
|
201
201
|
summary: ONLYOFFICE Webdriver Wrapper Gem
|