onlyoffice_webdriver_wrapper 0.3.5 → 0.4.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: 330c079d2c339d796d82e107ba37334d20240ede30025e32c0d113f910e5b3c2
4
- data.tar.gz: a26e4e28f96fabfb556ae5cb968591a2fb96096b0d8fc7d8db44f47c3ad68e55
3
+ metadata.gz: 198918d5a397566f6099da61229da418520359f28a8eae58c554291303319ccb
4
+ data.tar.gz: a4f7e7764c1a49456b5eed0d8a851a20eb6a3fc38890b222c66540927b03fa11
5
5
  SHA512:
6
- metadata.gz: 6ecdcce1acc5850b9f8025d4e2b79d00f36fb5347b1e55f2bfda709d44bf337c05c04048989f4ed35fdde5eaa5cf5026a821165a53a8e86f1b73d4fa3c1421dc
7
- data.tar.gz: d7dffb5e28cba23b06e54e9799c1f533ff244eaa36698b000d744a5965fa795ee64fdac43be21da89555e2eba2f5dcb078997c2b3cee61473e727af80922d98b
6
+ metadata.gz: 6c7bbf7385332599f38140a7457db436d79ffb298ba63d0895d8582f8092049962b69b6b819ff27b2700e42d6a0ed272776714ef6fc4a4ddc523549e746cde17
7
+ data.tar.gz: 4776a813a596cbb702e4b1a9664ca22b92f65b5eeebe1523adc5ff29b012abee0a698451eab7802cc8c4933f85d8c808244ef29e487693f6d668a0260340cd34
@@ -10,8 +10,11 @@ module OnlyofficeWebdriverWrapper
10
10
  class HeadlessHelper
11
11
  include RealDisplayTools
12
12
  include RubyHelper
13
+ # @return [Headless] instance of headless object
13
14
  attr_accessor :headless_instance
15
+ # @return [Integer] x resolution of virtual screen
14
16
  attr_accessor :resolution_x
17
+ # @return [Integer] y resolution of virtual screen
15
18
  attr_accessor :resolution_y
16
19
 
17
20
  def initialize(resolution_x = 1680, resolution_y = 1050)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OnlyofficeWebdriverWrapper
4
4
  module Version
5
- STRING = '0.3.5'
5
+ STRING = '0.4.0'
6
6
  end
7
7
  end
@@ -44,13 +44,15 @@ module OnlyofficeWebdriverWrapper
44
44
  TIMEOUT_FILE_DOWNLOAD = 100
45
45
  # @return [Array, String] default switches for chrome
46
46
  attr_accessor :driver
47
+ # @return [Symbol] browser to use
47
48
  attr_accessor :browser
48
49
  # @return [True, False] is browser currently running
49
50
  attr_reader :browser_running
50
51
  # @return [Symbol] device of which we try to simulate, default - :desktop_linux
51
52
  attr_accessor :device
53
+ # @return [String] directory to which file is downloaded
52
54
  attr_accessor :download_directory
53
- attr_accessor :server_address
55
+ # @return [HeadlessHelper] headless wrapper
54
56
  attr_accessor :headless
55
57
  # @return [Net::HTTP::Proxy] connection proxy
56
58
  attr_accessor :proxy
@@ -241,9 +243,10 @@ module OnlyofficeWebdriverWrapper
241
243
  end
242
244
 
243
245
  def element_present?(xpath_name)
244
- if xpath_name.is_a?(PageObject::Elements::Element)
246
+ case xpath_name
247
+ when PageObject::Elements::Element
245
248
  xpath_name.present?
246
- elsif xpath_name.is_a?(Selenium::WebDriver::Element)
249
+ when Selenium::WebDriver::Element
247
250
  xpath_name.displayed?
248
251
  else
249
252
  @driver.find_element(:xpath, xpath_name)
@@ -369,16 +372,6 @@ module OnlyofficeWebdriverWrapper
369
372
  @driver.find_elements(:xpath, xpath_several_elements).map { |element| element.text unless element.text == '' }.compact
370
373
  end
371
374
 
372
- def set_parameter(xpath, attribute, attribute_value)
373
- execute_javascript("document.evaluate(\"#{xpath.tr('"', "'")}\",document, null, XPathResult.ANY_TYPE, null ).iterateNext()." \
374
- "#{attribute}=\"#{attribute_value}\";")
375
- end
376
-
377
- def remove_attribute(xpath, attribute)
378
- execute_javascript("document.evaluate(\"#{xpath}\",document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null)." \
379
- "singleNodeValue.removeAttribute('#{attribute}');")
380
- end
381
-
382
375
  def select_combo_box(xpath_name, select_value, select_by = :value)
383
376
  wait_until_element_visible(xpath_name)
384
377
  option = Selenium::WebDriver::Support::Select.new(get_element(xpath_name))
@@ -40,5 +40,24 @@ module OnlyofficeWebdriverWrapper
40
40
  end
41
41
  0
42
42
  end
43
+
44
+ # Set element attribute
45
+ # @param xpath [String] element to select
46
+ # @param attribute [String] attribute to set
47
+ # @param attribute_value [String] value of attribute
48
+ # @return [String] result of execution
49
+ def set_attribute(xpath, attribute, attribute_value)
50
+ execute_javascript("#{dom_element_by_xpath(xpath)}.#{attribute}=\"#{attribute_value}\";")
51
+ end
52
+
53
+ alias set_parameter set_attribute
54
+
55
+ # Remove attribute of element
56
+ # @param xpath [String] xpath of element
57
+ # @param attribute [String] attribute to remove
58
+ # @return [String] result of execution
59
+ def remove_attribute(xpath, attribute)
60
+ execute_javascript("#{dom_element_by_xpath(xpath)}.removeAttribute('#{attribute}');")
61
+ end
43
62
  end
44
63
  end
@@ -28,8 +28,13 @@ module OnlyofficeWebdriverWrapper
28
28
  execute_javascript("document.evaluate('#{xpath_name}', document, null, XPathResult.ANY_TYPE, null).iterateNext().value=\"#{escaped_text}\";")
29
29
  end
30
30
 
31
+ # Get text in object by xpath
32
+ # @param xpath [String] xpath to get text
33
+ # @return [String] text in xpath
31
34
  def get_text_by_js(xpath)
32
- execute_javascript("return document.evaluate(\"#{xpath.tr('"', "'")}\",document, null, XPathResult.ANY_TYPE, null ).iterateNext().textContent")
35
+ text = execute_javascript("return #{dom_element_by_xpath(xpath)}.textContent")
36
+ text = execute_javascript("return #{dom_element_by_xpath(xpath)}.value") if text.empty?
37
+ text
33
38
  end
34
39
 
35
40
  # Calculate object size using Javascript
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: 0.3.5
4
+ version: 0.4.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: 2020-07-15 00:00:00.000000000 Z
14
+ date: 2020-07-30 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: headless