lib/appium_lib/android/element/button.rb in appium_lib-3.0.3 vs lib/appium_lib/android/element/button.rb in appium_lib-4.0.0

- old
+ new

@@ -9,28 +9,16 @@ # @private def _button_visible_selectors opts={} button_index = opts.fetch :button_index, false image_button_index = opts.fetch :image_button_index, false - # complex_find(...) - # 4 = className(String className) - # 9 = instance(final int instance) - if button_index && image_button_index - [ - # className().instance() - [[4, Button], [9, button_index]], - # className().instance() - [[4, ImageButton], [9, image_button_index]] - ] + "new UiSelector().className(#{Button}).instance(#{button_index});" + + "new UiSelector().className(#{ImageButton}).instance(#{image_button_index});" else - [ - # className() - [[4, Button]], - # className() - [[4, ImageButton]] - ] + "new UiSelector().className(#{Button});" + + "new UiSelector().className(#{ImageButton});" end end # @private def _button_exact_string value @@ -57,54 +45,56 @@ # Android needs to combine button and image button to match iOS. if value.is_a? Numeric index = value raise "#{index} is not a valid index. Must be >= 1" if index <= 0 - return complex_find _button_visible_selectors index: index + return find_element :uiautomator, _button_visible_selectors(index: index) end - complex_find _button_contains_string value + find_element :uiautomator, _button_contains_string(value) end # Find all buttons containing value. # If value is omitted, all buttons are returned. # @param value [String] the value to search for # @return [Array<Button>] def buttons value=false - return complex_find mode: 'all', selectors: _button_visible_selectors unless value - complex_find mode: 'all', selectors: _button_contains_string(value) + return find_elements :uiautomator, _button_visible_selectors unless value + find_elements :uiautomator, _button_contains_string(value) end # Find the first button. # @return [Button] def first_button - complex_find _button_visible_selectors button_index: 0, image_button_index: 0 + find_element :uiautomator, _button_visible_selectors(button_index: 0, image_button_index: 0) end # Find the last button. # @return [Button] def last_button # uiautomator index doesn't support last # and it's 0 indexed button_index = tags(Button).length - button_index -= 1 if button_index >= 0 + button_index -= 1 if button_index > 0 image_button_index = tags(ImageButton).length - image_button_index -= 1 if image_button_index >= 0 + image_button_index -= 1 if image_button_index > 0 - complex_find _button_visible_selectors button_index: button_index, image_button_index: image_button_index + find_element :uiautomator, + _button_visible_selectors(button_index: button_index, + image_button_index: image_button_index) end # Find the first button that exactly matches value. # @param value [String] the value to match exactly # @return [Button] def button_exact value - complex_find _button_exact_string value + find_element :uiautomator, _button_exact_string(value) end # Find all buttons that exactly match value. # @param value [String] the value to match exactly # @return [Array<Button>] def buttons_exact value - complex_find mode: 'all', selectors: _button_exact_string(value) + find_elements :uiautomator, _button_exact_string(value) end end # module Android end # module Appium \ No newline at end of file