appium_lib_core 4.1.0 → 5.0.0.beta4
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/.github/dependabot.yml +8 -0
- data/.github/workflows/unittest.yml +2 -2
- data/CHANGELOG.md +43 -277
- data/README.md +2 -1
- data/appium_lib_core.gemspec +4 -4
- data/ci-jobs/functional/run_appium.yml +2 -2
- data/ci-jobs/functional_test.yml +1 -1
- data/lib/appium_lib_core/android/device/auth_finger_print.rb +2 -1
- data/lib/appium_lib_core/android/device.rb +4 -4
- data/lib/appium_lib_core/common/base/bridge.rb +284 -89
- data/lib/appium_lib_core/common/base/capabilities.rb +3 -3
- data/lib/appium_lib_core/common/base/device_ime.rb +49 -0
- data/lib/appium_lib_core/common/base/driver.rb +157 -88
- data/lib/appium_lib_core/common/base/driver_settings.rb +51 -0
- data/lib/appium_lib_core/common/base/has_location.rb +73 -0
- data/lib/appium_lib_core/common/base/has_network_connection.rb +56 -0
- data/lib/appium_lib_core/common/base/http_default.rb +1 -3
- data/lib/appium_lib_core/common/base/remote_status.rb +31 -0
- data/lib/appium_lib_core/common/base/rotable.rb +54 -0
- data/lib/appium_lib_core/common/base/screenshot.rb +1 -1
- data/lib/appium_lib_core/common/base/search_context.rb +11 -4
- data/lib/appium_lib_core/common/base.rb +1 -3
- data/lib/appium_lib_core/common/command.rb +259 -4
- data/lib/appium_lib_core/common/device/image_comparison.rb +12 -4
- data/lib/appium_lib_core/common/device/keyevent.rb +4 -4
- data/lib/appium_lib_core/common/{command/mjsonwp.rb → device/orientation.rb} +14 -11
- data/lib/appium_lib_core/common/error.rb +4 -1
- data/lib/appium_lib_core/common/log.rb +4 -1
- data/lib/appium_lib_core/device.rb +1 -5
- data/lib/appium_lib_core/driver.rb +17 -13
- data/lib/appium_lib_core/{patch.rb → element.rb} +53 -5
- data/lib/appium_lib_core/ios/uiautomation/patch.rb +1 -1
- data/lib/appium_lib_core/{common/base/command.rb → mac2/bridge.rb} +9 -8
- data/lib/appium_lib_core/mac2/device/screen.rb +48 -0
- data/lib/appium_lib_core/mac2/device.rb +92 -0
- data/lib/appium_lib_core/mac2.rb +17 -0
- data/lib/appium_lib_core/version.rb +2 -2
- data/lib/appium_lib_core.rb +2 -5
- data/release_notes.md +73 -0
- data/script/commands.rb +3 -37
- metadata +30 -30
- data/lib/appium_lib_core/common/base/bridge/mjsonwp.rb +0 -81
- data/lib/appium_lib_core/common/base/bridge/w3c.rb +0 -252
- data/lib/appium_lib_core/common/command/common.rb +0 -110
- data/lib/appium_lib_core/common/command/w3c.rb +0 -56
| @@ -14,11 +14,12 @@ | |
| 14 14 |  | 
| 15 15 | 
             
            module Appium
         | 
| 16 16 | 
             
              module Core
         | 
| 17 | 
            -
                 | 
| 18 | 
            -
                  module  | 
| 19 | 
            -
                     | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
            end | 
| 17 | 
            +
                module Mac2
         | 
| 18 | 
            +
                  module Bridge
         | 
| 19 | 
            +
                    def self.for(target)
         | 
| 20 | 
            +
                      target.extend Appium::Core::Mac2::Device
         | 
| 21 | 
            +
                    end
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
| @@ -0,0 +1,48 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 4 | 
            +
            # you may not use this file except in compliance with the License.
         | 
| 5 | 
            +
            # You may obtain a copy of the License at
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #     http://www.apache.org/licenses/LICENSE-2.0
         | 
| 8 | 
            +
            #
         | 
| 9 | 
            +
            # Unless required by applicable law or agreed to in writing, software
         | 
| 10 | 
            +
            # distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 11 | 
            +
            # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 12 | 
            +
            # See the License for the specific language governing permissions and
         | 
| 13 | 
            +
            # limitations under the License.
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            module Appium
         | 
| 16 | 
            +
              module Core
         | 
| 17 | 
            +
                module Mac2
         | 
| 18 | 
            +
                  module Device
         | 
| 19 | 
            +
                    module Screen
         | 
| 20 | 
            +
                      def self.add_methods
         | 
| 21 | 
            +
                        ::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
         | 
| 22 | 
            +
                          def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
         | 
| 23 | 
            +
                                                     file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil,
         | 
| 24 | 
            +
                                                     fps: nil, preset: nil, video_filter: nil, time_limit: nil,
         | 
| 25 | 
            +
                                                     enable_capture_clicks: nil, enable_cursor_capture: nil, device_id: nil)
         | 
| 26 | 
            +
                            option = ::Appium::Core::Base::Device::ScreenRecord.new(
         | 
| 27 | 
            +
                              remote_path: remote_path, user: user, pass: pass, method: method,
         | 
| 28 | 
            +
                              file_field_name: file_field_name, form_fields: form_fields, headers: headers,
         | 
| 29 | 
            +
                              force_restart: force_restart
         | 
| 30 | 
            +
                            ).upload_option
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                            option[:fps] = fps unless fps.nil?
         | 
| 33 | 
            +
                            option[:preset] = preset unless preset.nil?
         | 
| 34 | 
            +
                            option[:videoFilter] = video_filter unless video_filter.nil?
         | 
| 35 | 
            +
                            option[:captureClicks] = enable_capture_clicks unless enable_capture_clicks.nil?
         | 
| 36 | 
            +
                            option[:captureCursor] = enable_cursor_capture unless enable_cursor_capture.nil?
         | 
| 37 | 
            +
                            option[:deviceId] = device_id unless device_id.nil?
         | 
| 38 | 
            +
                            option[:timeLimit] = time_limit unless time_limit.nil?
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                            execute(:start_recording_screen, {}, { options: option })
         | 
| 41 | 
            +
                          end
         | 
| 42 | 
            +
                        end
         | 
| 43 | 
            +
                      end
         | 
| 44 | 
            +
                    end # module Screen
         | 
| 45 | 
            +
                  end # module Device
         | 
| 46 | 
            +
                end # module Mac2
         | 
| 47 | 
            +
              end # module Core
         | 
| 48 | 
            +
            end # module Appium
         | 
| @@ -0,0 +1,92 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 4 | 
            +
            # you may not use this file except in compliance with the License.
         | 
| 5 | 
            +
            # You may obtain a copy of the License at
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #     http://www.apache.org/licenses/LICENSE-2.0
         | 
| 8 | 
            +
            #
         | 
| 9 | 
            +
            # Unless required by applicable law or agreed to in writing, software
         | 
| 10 | 
            +
            # distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 11 | 
            +
            # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 12 | 
            +
            # See the License for the specific language governing permissions and
         | 
| 13 | 
            +
            # limitations under the License.
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            require_relative 'device/screen'
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            module Appium
         | 
| 18 | 
            +
              module Core
         | 
| 19 | 
            +
                module Mac2
         | 
| 20 | 
            +
                  module Device
         | 
| 21 | 
            +
                    extend Forwardable
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                    # rubocop:disable Layout/LineLength
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                    # @since Appium 1.20.0
         | 
| 26 | 
            +
                    # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil, fps: nil, preset: nil, video_filter: nil, enable_capture_clicks: nil, enable_cursor_capture: nil, device_id: nil)
         | 
| 27 | 
            +
                    #
         | 
| 28 | 
            +
                    # Record the display of devices running iOS Simulator since Xcode 9 or real devices since iOS 11
         | 
| 29 | 
            +
                    # (ffmpeg utility is required: 'brew install ffmpeg').
         | 
| 30 | 
            +
                    # We would recommend to play the video by VLC or Mplayer if you can not play the video with other video players.
         | 
| 31 | 
            +
                    #
         | 
| 32 | 
            +
                    # @param [String] remote_path The path to the remote location, where the resulting video should be uploaded.
         | 
| 33 | 
            +
                    #                             The following protocols are supported: http/https, ftp.
         | 
| 34 | 
            +
                    #                             Null or empty string value (the default setting) means the content of resulting
         | 
| 35 | 
            +
                    #                             file should be encoded as Base64 and passed as the endpount response value.
         | 
| 36 | 
            +
                    #                             An exception will be thrown if the generated media file is too big to
         | 
| 37 | 
            +
                    #                             fit into the available process memory.
         | 
| 38 | 
            +
                    #                             This option only has an effect if there is screen recording process in progreess
         | 
| 39 | 
            +
                    #                             and +forceRestart+ parameter is not set to +true+.
         | 
| 40 | 
            +
                    # @param [String] user The name of the user for the remote authentication.
         | 
| 41 | 
            +
                    # @param [String] pass The password for the remote authentication.
         | 
| 42 | 
            +
                    # @param [String] method The http multipart upload method name. The 'PUT' one is used by default.
         | 
| 43 | 
            +
                    # @param [String] file_field_name The name of the form field containing the binary payload in multipart/form-data
         | 
| 44 | 
            +
                    #                             requests since Appium 1.18.0. Defaults to 'file'.
         | 
| 45 | 
            +
                    # @param [Array<Hash, Array<String>>] form_fields The form fields mapping in multipart/form-data requests since Appium 1.18.0.
         | 
| 46 | 
            +
                    #                             If any entry has the same key in this mapping, then it is going to be ignored.
         | 
| 47 | 
            +
                    # @param [Hash] headers The additional headers in multipart/form-data requests since Appium 1.18.0.
         | 
| 48 | 
            +
                    # @param [Boolean] force_restart Whether to try to catch and upload/return the currently running screen recording
         | 
| 49 | 
            +
                    #                                (+false+, the default setting on server) or ignore the result of it
         | 
| 50 | 
            +
                    #                                and start a new recording immediately (+true+).
         | 
| 51 | 
            +
                    # @param [integer] fps The count of frames per second in the resulting video.
         | 
| 52 | 
            +
                    #                      Increasing fps value also increases the size of the resulting video file and the CPU usage.
         | 
| 53 | 
            +
                    #                      The default value is 15.
         | 
| 54 | 
            +
                    # @param [String] preset A preset is a collection of options that will provide a certain encoding speed to compression ratio.
         | 
| 55 | 
            +
                    #                        A slower preset will provide better compression (compression is quality per filesize).
         | 
| 56 | 
            +
                    #                        This means that, for example, if you target a certain file size or constant bit rate, you will
         | 
| 57 | 
            +
                    #                        achieve better quality with a slower preset. Read https://trac.ffmpeg.org/wiki/Encode/H.264
         | 
| 58 | 
            +
                    #                        for more details.
         | 
| 59 | 
            +
                    # @param [Boolean] enable_cursor_capture Whether to capture the click gestures while recording the screen. Disabled by default.
         | 
| 60 | 
            +
                    # @param [Boolean] enable_capture_clicks Recording time. 180 seconds is by default.
         | 
| 61 | 
            +
                    # @param [String] video_filter The video filter spec to apply for ffmpeg.
         | 
| 62 | 
            +
                    #                              See https://trac.ffmpeg.org/wiki/FilteringGuide for more details on the possible values.
         | 
| 63 | 
            +
                    #                              Example: Set it to +scale=ifnot(gte(iw\,1024)\,iw\,1024):-2+ in order to limit the video width
         | 
| 64 | 
            +
                    #                              to 1024px. The height will be adjusted automatically to match the actual screen aspect ratio.
         | 
| 65 | 
            +
                    # @param [integer] device_id Screen device index to use for the recording.
         | 
| 66 | 
            +
                    #                            The list of available devices could be retrieved using
         | 
| 67 | 
            +
                    #                            +ffmpeg -f avfoundation -list_devices true -i ""+ command.
         | 
| 68 | 
            +
                    #                            This option is mandatory and must be always provided.
         | 
| 69 | 
            +
                    # @param [String] time_limit The maximum recording time. The default value is 600 seconds (10 minutes).
         | 
| 70 | 
            +
                    #                            The minimum time resolution unit is one second.
         | 
| 71 | 
            +
                    #
         | 
| 72 | 
            +
                    # @example
         | 
| 73 | 
            +
                    #
         | 
| 74 | 
            +
                    #    @driver.start_recording_screen
         | 
| 75 | 
            +
                    #    @driver.start_recording_screen fps: 30, enable_cursor_capture: true
         | 
| 76 | 
            +
                    #
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                    # rubocop:enable Layout/LineLength
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                    ####
         | 
| 81 | 
            +
                    ## class << self
         | 
| 82 | 
            +
                    ####
         | 
| 83 | 
            +
             | 
| 84 | 
            +
                    class << self
         | 
| 85 | 
            +
                      def extended(_mod)
         | 
| 86 | 
            +
                        Screen.add_methods
         | 
| 87 | 
            +
                      end
         | 
| 88 | 
            +
                    end # class << self
         | 
| 89 | 
            +
                  end # module Device
         | 
| 90 | 
            +
                end # module Mac2
         | 
| 91 | 
            +
              end # module Core
         | 
| 92 | 
            +
            end # module Appium
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 4 | 
            +
            # you may not use this file except in compliance with the License.
         | 
| 5 | 
            +
            # You may obtain a copy of the License at
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #     http://www.apache.org/licenses/LICENSE-2.0
         | 
| 8 | 
            +
            #
         | 
| 9 | 
            +
            # Unless required by applicable law or agreed to in writing, software
         | 
| 10 | 
            +
            # distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 11 | 
            +
            # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 12 | 
            +
            # See the License for the specific language governing permissions and
         | 
| 13 | 
            +
            # limitations under the License.
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            # loaded in common/driver.rb
         | 
| 16 | 
            +
            require_relative 'mac2/device'
         | 
| 17 | 
            +
            require_relative 'mac2/bridge'
         | 
| @@ -14,7 +14,7 @@ | |
| 14 14 |  | 
| 15 15 | 
             
            module Appium
         | 
| 16 16 | 
             
              module Core
         | 
| 17 | 
            -
                VERSION = ' | 
| 18 | 
            -
                DATE    = ' | 
| 17 | 
            +
                VERSION = '5.0.0.beta4' unless defined? ::Appium::Core::VERSION
         | 
| 18 | 
            +
                DATE    = '2021-06-11' unless defined? ::Appium::Core::DATE
         | 
| 19 19 | 
             
              end
         | 
| 20 20 | 
             
            end
         | 
    
        data/lib/appium_lib_core.rb
    CHANGED
    
    | @@ -17,11 +17,8 @@ require 'selenium-webdriver' | |
| 17 17 | 
             
            require_relative 'appium_lib_core/version'
         | 
| 18 18 | 
             
            require_relative 'appium_lib_core/common'
         | 
| 19 19 | 
             
            require_relative 'appium_lib_core/driver'
         | 
| 20 | 
            -
             | 
| 21 20 | 
             
            require_relative 'appium_lib_core/device'
         | 
| 22 | 
            -
             | 
| 23 | 
            -
            # Call patch after requiring other files
         | 
| 24 | 
            -
            require_relative 'appium_lib_core/patch'
         | 
| 21 | 
            +
            require_relative 'appium_lib_core/element'
         | 
| 25 22 |  | 
| 26 23 | 
             
            module Appium
         | 
| 27 24 | 
             
              # convert all keys (including nested) to symbols
         | 
| @@ -30,7 +27,7 @@ module Appium | |
| 30 27 | 
             
              # https://github.com/rails/docrails/blob/a3b1105ada3da64acfa3843b164b14b734456a50/activesupport/lib/active_support/core_ext/hash/keys.rb#L84
         | 
| 31 28 | 
             
              # @param [Hash] hash Hash value to make symbolise
         | 
| 32 29 | 
             
              def self.symbolize_keys(hash)
         | 
| 33 | 
            -
                raise ArgumentError, 'symbolize_keys requires a hash' unless hash.is_a? Hash
         | 
| 30 | 
            +
                raise ::Appium::Core::Error::ArgumentError, 'symbolize_keys requires a hash' unless hash.is_a? Hash
         | 
| 34 31 |  | 
| 35 32 | 
             
                hash.each_with_object({}) do |pair, acc|
         | 
| 36 33 | 
             
                  key = begin
         | 
    
        data/release_notes.md
    CHANGED
    
    | @@ -1,3 +1,76 @@ | |
| 1 | 
            +
            #### v4.6.0 2021-06-03
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            - [0dacfab](https://github.com/appium/ruby_lib_core/commit/0dacfab1256e1447e1f7a5974dfcf48ee0a72b9d) Release 4.6.0
         | 
| 4 | 
            +
            - [b9f015d](https://github.com/appium/ruby_lib_core/commit/b9f015d7dea14964a0733f2385ebcff68da1e18e) feat: allow to add commands dynamically (#325)
         | 
| 5 | 
            +
            - [3de96ee](https://github.com/appium/ruby_lib_core/commit/3de96eea133ccbcbc5c4d77adc7d67c065a5a38c) chore(deps-dev): update webmock requirement from ~> 3.12.1 to ~> 3.13.0 (#324)
         | 
| 6 | 
            +
            - [f1a9e79](https://github.com/appium/ruby_lib_core/commit/f1a9e79f3bd4d134e125fc2ed9adcf3d085afc9a) docs: address func test code as working example
         | 
| 7 | 
            +
            - [eb85b1b](https://github.com/appium/ruby_lib_core/commit/eb85b1b26623436cb0aae95a00fef7bc2d795520) remove ; in a test
         | 
| 8 | 
            +
            - [1632637](https://github.com/appium/ruby_lib_core/commit/1632637fd872c0b80dfb97b8514ada6a7164eebf) chore(deps-dev): update rubocop requirement from = 1.11.0 to = 1.12.0 (#321)
         | 
| 9 | 
            +
            - [b9e47aa](https://github.com/appium/ruby_lib_core/commit/b9e47aa9b02f060ffa91e8410ab97dc87d3640a4) docs: add docstring
         | 
| 10 | 
            +
            - [954a2fe](https://github.com/appium/ruby_lib_core/commit/954a2feebb768a55b496a2614d9e4dd8b702fc1e) chore(deps-dev): update rubocop requirement from = 1.8.1 to = 1.11.0 (#316)
         | 
| 11 | 
            +
            - [a5b9651](https://github.com/appium/ruby_lib_core/commit/a5b9651aa349c10bd9759fedac6f09e27012a5e5) chore(deps-dev): update webmock requirement from ~> 3.11.0 to ~> 3.12.1 (#319)
         | 
| 12 | 
            +
            - [485c096](https://github.com/appium/ruby_lib_core/commit/485c096273178aa5e21f28d93545fd127cbb8735) test: add assertion
         | 
| 13 | 
            +
             | 
| 14 | 
            +
             | 
| 15 | 
            +
            #### v4.5.0 2021-03-14
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            - [656230e](https://github.com/appium/ruby_lib_core/commit/656230e688ed86414c06efaa73bce7359933cc91) Release 4.5.0
         | 
| 18 | 
            +
            - [a0a3cfc](https://github.com/appium/ruby_lib_core/commit/a0a3cfc71783bed3d1b0e7afbf6bc0a27bf60a48) feat: add speed option (#318)
         | 
| 19 | 
            +
            - [16b4f09](https://github.com/appium/ruby_lib_core/commit/16b4f0991deb639314857c3cbece1e4d00393646) feat: add multiple and match_neighbour_threshold (#313)
         | 
| 20 | 
            +
            - [d195a5b](https://github.com/appium/ruby_lib_core/commit/d195a5ba48c2e1a7229e0145eac616fd886c1ee0) ci: use node 12
         | 
| 21 | 
            +
             | 
| 22 | 
            +
             | 
| 23 | 
            +
            #### v4.4.1 2021-02-15
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            - [dc34419](https://github.com/appium/ruby_lib_core/commit/dc34419dfcc4dd8d499a6407d45ab3efe70c2445) Release 4.4.1
         | 
| 26 | 
            +
            - [3085048](https://github.com/appium/ruby_lib_core/commit/3085048b4816e3415017ebb188e653c8e229a05e) chore: return {} in nil case as well
         | 
| 27 | 
            +
             | 
| 28 | 
            +
             | 
| 29 | 
            +
            #### v4.4.0 2021-02-13
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            - [06c68fb](https://github.com/appium/ruby_lib_core/commit/06c68fbe3ffdbb7b068d2f71ad6841c66dbabf8f) Release 4.4.0
         | 
| 32 | 
            +
            - [3c54ae2](https://github.com/appium/ruby_lib_core/commit/3c54ae25d9a334f3690c94ce8a59a5c6a4bacd20) feat: always return {} in appium_server_version for errors (#311)
         | 
| 33 | 
            +
             | 
| 34 | 
            +
             | 
| 35 | 
            +
            #### v4.3.1 2021-02-07
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            - [1f4d52c](https://github.com/appium/ruby_lib_core/commit/1f4d52cc915783cf89cf4b8ca5a21bd1af5403e0) Release 4.3.1
         | 
| 38 | 
            +
            - [fb41014](https://github.com/appium/ruby_lib_core/commit/fb410146567ed03902b602813881fd3abc3a3d28) chore: change log level
         | 
| 39 | 
            +
            - [1e54662](https://github.com/appium/ruby_lib_core/commit/1e546628c871e4ed9c8aa038a455d03e4e2e6c4e) chore : Create Dependabot config file (#309)
         | 
| 40 | 
            +
             | 
| 41 | 
            +
             | 
| 42 | 
            +
            #### v4.3.0 2021-02-05
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            - [6e85426](https://github.com/appium/ruby_lib_core/commit/6e85426c1ff8f3e4b90d3da5305d493500539467) Release 4.3.0
         | 
| 45 | 
            +
            - [405b3d8](https://github.com/appium/ruby_lib_core/commit/405b3d8e627323376dbf74a4423d0ebce5ca0cad) feat: Add mac2 module and screen recording option (#308)
         | 
| 46 | 
            +
            - [876d254](https://github.com/appium/ruby_lib_core/commit/876d25494c76c31ad5c26900d6e30e30ecd8d20c) chore: teak types in yardoc (#307)
         | 
| 47 | 
            +
            - [7548ea9](https://github.com/appium/ruby_lib_core/commit/7548ea9cb7e031a3689a63e75d32da82d317488a) test: add wait
         | 
| 48 | 
            +
            - [9d6fef4](https://github.com/appium/ruby_lib_core/commit/9d6fef469fad8bccf61ee6565f2e30095f4e2a6a) feat: makes direct_connect true by default (#303)
         | 
| 49 | 
            +
            - [761067e](https://github.com/appium/ruby_lib_core/commit/761067e5c42cfb3e4c1e5c5a377dbeb3c903eb7b) test: add location test (#302)
         | 
| 50 | 
            +
            - [bd33397](https://github.com/appium/ruby_lib_core/commit/bd3339791552d2eb5181ca4475c9ebc90644a456) chore(deps-dev): update rubocop requirement from = 1.8.0 to = 1.8.1 (#301)
         | 
| 51 | 
            +
             | 
| 52 | 
            +
             | 
| 53 | 
            +
            #### v4.2.1 2021-01-10
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            - [23e944e](https://github.com/appium/ruby_lib_core/commit/23e944ed72c6ea861532f5acc1381af4441705e6) Release 4.2.1
         | 
| 56 | 
            +
            - [1a416b1](https://github.com/appium/ruby_lib_core/commit/1a416b136beb2b9115d3eb6637b22817f0e55601) chore: move rotable for w3c (#300)
         | 
| 57 | 
            +
            - [95821c6](https://github.com/appium/ruby_lib_core/commit/95821c6f1a4ebc785e2dc3e6e16c1705521237e8) ci: bump android app (#299)
         | 
| 58 | 
            +
            - [4e1770e](https://github.com/appium/ruby_lib_core/commit/4e1770e3b9d6995b1d5430b9033097609edca1c8) chore(deps-dev): update rubocop requirement from = 1.7.0 to = 1.8.0 (#298)
         | 
| 59 | 
            +
            - [b230512](https://github.com/appium/ruby_lib_core/commit/b230512c52875ea70545d3d2262c306640f87f7d) chore: fix rubocop
         | 
| 60 | 
            +
             | 
| 61 | 
            +
             | 
| 62 | 
            +
            #### v4.2.0 2021-01-02
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            - [e55b2b6](https://github.com/appium/ruby_lib_core/commit/e55b2b6f7fe293091be0d3835075e66c74f3b9dd) Release 4.2.0
         | 
| 65 | 
            +
            - [b0cd235](https://github.com/appium/ruby_lib_core/commit/b0cd235a7fb6e5a8957871650bf86962cf0e0368) feat: append screenshot in element module as well (#297)
         | 
| 66 | 
            +
             | 
| 67 | 
            +
             | 
| 68 | 
            +
            #### v4.1.1 2020-12-25
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            - [3a4cf56](https://github.com/appium/ruby_lib_core/commit/3a4cf56c73a64fb10ca0b7fecc5800719838095c) Release 4.1.1
         | 
| 71 | 
            +
            - [6b2d7dd](https://github.com/appium/ruby_lib_core/commit/6b2d7ddf027b5a9f49cbe9a7f5622eb345e2c076) fix: keyword argument in Ruby 3
         | 
| 72 | 
            +
             | 
| 73 | 
            +
             | 
| 1 74 | 
             
            #### v4.1.0 2020-12-25
         | 
| 2 75 |  | 
| 3 76 | 
             
            - [89110a9](https://github.com/appium/ruby_lib_core/commit/89110a995b869471a134f8c45ebe8dfbaabfba63) Release 4.1.0
         | 
    
        data/script/commands.rb
    CHANGED
    
    | @@ -18,26 +18,18 @@ require './lib/appium_lib_core' | |
| 18 18 | 
             
            module Script
         | 
| 19 19 | 
             
              class CommandsChecker
         | 
| 20 20 | 
             
                attr_reader :spec_commands,
         | 
| 21 | 
            -
                            : | 
| 22 | 
            -
                            : | 
| 21 | 
            +
                            :implemented_w3c_commands, :implemented_core_commands,
         | 
| 22 | 
            +
                            :webdriver_w3c_commands
         | 
| 23 23 |  | 
| 24 24 | 
             
                # Set commands implemented in this core library.
         | 
| 25 25 | 
             
                #
         | 
| 26 | 
            -
                # -  | 
| 27 | 
            -
                # - implemented_w3c_commands:  All commands include ::Selenium::WebDriver::Remote::W3C::Bridge::COMMANDS
         | 
| 26 | 
            +
                # - implemented_w3c_commands:  All commands include ::Selenium::WebDriver::Remote::Bridge::COMMANDS
         | 
| 28 27 | 
             
                # - implemented_core_commands:  All commands except for selenium-webdriver's commands
         | 
| 29 | 
            -
                # - webdriver_oss_commands: ::Selenium::WebDriver::Remote::OSS::Bridge::COMMANDS
         | 
| 30 | 
            -
                # - webdriver_w3c_commands: ::Selenium::WebDriver::Remote::W3C::Bridge::COMMANDS
         | 
| 31 28 | 
             
                #
         | 
| 32 29 | 
             
                def initialize
         | 
| 33 30 | 
             
                  @spec_commands = nil
         | 
| 34 31 |  | 
| 35 | 
            -
                  @implemented_mjsonwp_commands = convert_driver_commands Appium::Core::Commands::MJSONWP::COMMANDS
         | 
| 36 | 
            -
                  @implemented_w3c_commands = convert_driver_commands Appium::Core::Commands::W3C::COMMANDS
         | 
| 37 32 | 
             
                  @implemented_core_commands = convert_driver_commands Appium::Core::Commands::COMMANDS
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                  @webdriver_oss_commands = convert_driver_commands Appium::Core::Base::Commands::OSS
         | 
| 40 | 
            -
                  @webdriver_w3c_commands = convert_driver_commands Appium::Core::Base::Commands::W3C
         | 
| 41 33 | 
             
                end
         | 
| 42 34 |  | 
| 43 35 | 
             
                # Get the bellow url's file.
         | 
| @@ -80,18 +72,6 @@ module Script | |
| 80 72 | 
             
                  end
         | 
| 81 73 | 
             
                end
         | 
| 82 74 |  | 
| 83 | 
            -
                # All commands which haven't been implemented in ruby core library yet.
         | 
| 84 | 
            -
                # @return [Hash]
         | 
| 85 | 
            -
                #
         | 
| 86 | 
            -
                def all_diff_commands_mjsonwp
         | 
| 87 | 
            -
                  result = compare_commands(@spec_commands, @implemented_mjsonwp_commands)
         | 
| 88 | 
            -
             | 
| 89 | 
            -
                  white_list.each { |v| result.delete v }
         | 
| 90 | 
            -
                  w3c_spec.each { |v| result.delete v }
         | 
| 91 | 
            -
             | 
| 92 | 
            -
                  result
         | 
| 93 | 
            -
                end
         | 
| 94 | 
            -
             | 
| 95 75 | 
             
                # All commands which haven't been implemented in ruby core library yet.
         | 
| 96 76 | 
             
                # @return [Hash]
         | 
| 97 77 | 
             
                #
         | 
| @@ -111,20 +91,6 @@ module Script | |
| 111 91 | 
             
                  result
         | 
| 112 92 | 
             
                end
         | 
| 113 93 |  | 
| 114 | 
            -
                def diff_webdriver_oss
         | 
| 115 | 
            -
                  result = compare_commands(@spec_commands, @webdriver_oss_commands)
         | 
| 116 | 
            -
                  white_list.each { |v| result.delete v }
         | 
| 117 | 
            -
                  w3c_spec.each { |v| result.delete v }
         | 
| 118 | 
            -
                  result
         | 
| 119 | 
            -
                end
         | 
| 120 | 
            -
             | 
| 121 | 
            -
                def diff_webdriver_w3c
         | 
| 122 | 
            -
                  result = compare_commands(@spec_commands, @webdriver_w3c_commands)
         | 
| 123 | 
            -
                  white_list.each { |v| result.delete v }
         | 
| 124 | 
            -
                  mjsonwp_spec.each { |v| result.delete v }
         | 
| 125 | 
            -
                  result
         | 
| 126 | 
            -
                end
         | 
| 127 | 
            -
             | 
| 128 94 | 
             
                def compare_commands(command1, with_command2)
         | 
| 129 95 | 
             
                  return {} if command1.nil?
         | 
| 130 96 | 
             
                  return command1 if with_command2.nil?
         | 
    
        metadata
    CHANGED
    
    | @@ -1,35 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: appium_lib_core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 5.0.0.beta4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Kazuaki MATSUO
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-06-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: selenium-webdriver
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 18 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: '3.14'
         | 
| 20 | 
            -
                - - ">="
         | 
| 17 | 
            +
                - - '='
         | 
| 21 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 4.0.0.beta4
         | 
| 23 20 | 
             
              type: :runtime
         | 
| 24 21 | 
             
              prerelease: false
         | 
| 25 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 | 
            -
                - -  | 
| 28 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version: '3.14'
         | 
| 30 | 
            -
                - - ">="
         | 
| 24 | 
            +
                - - '='
         | 
| 31 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            -
                    version:  | 
| 26 | 
            +
                    version: 4.0.0.beta4
         | 
| 33 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 34 28 | 
             
              name: faye-websocket
         | 
| 35 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -120,28 +114,28 @@ dependencies: | |
| 120 114 | 
             
                requirements:
         | 
| 121 115 | 
             
                - - "~>"
         | 
| 122 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 123 | 
            -
                    version: 3. | 
| 117 | 
            +
                    version: 3.13.0
         | 
| 124 118 | 
             
              type: :development
         | 
| 125 119 | 
             
              prerelease: false
         | 
| 126 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 127 121 | 
             
                requirements:
         | 
| 128 122 | 
             
                - - "~>"
         | 
| 129 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 130 | 
            -
                    version: 3. | 
| 124 | 
            +
                    version: 3.13.0
         | 
| 131 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 132 126 | 
             
              name: rubocop
         | 
| 133 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 134 128 | 
             
                requirements:
         | 
| 135 129 | 
             
                - - '='
         | 
| 136 130 | 
             
                  - !ruby/object:Gem::Version
         | 
| 137 | 
            -
                    version: 1. | 
| 131 | 
            +
                    version: 1.12.0
         | 
| 138 132 | 
             
              type: :development
         | 
| 139 133 | 
             
              prerelease: false
         | 
| 140 134 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 141 135 | 
             
                requirements:
         | 
| 142 136 | 
             
                - - '='
         | 
| 143 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 144 | 
            -
                    version: 1. | 
| 138 | 
            +
                    version: 1.12.0
         | 
| 145 139 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 146 140 | 
             
              name: appium_thor
         | 
| 147 141 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -221,6 +215,7 @@ extra_rdoc_files: [] | |
| 221 215 | 
             
            files:
         | 
| 222 216 | 
             
            - ".github/ISSUE_TEMPLATE/issue-report.md"
         | 
| 223 217 | 
             
            - ".github/contributing.md"
         | 
| 218 | 
            +
            - ".github/dependabot.yml"
         | 
| 224 219 | 
             
            - ".github/issue_template.md"
         | 
| 225 220 | 
             
            - ".github/workflows/unittest.yml"
         | 
| 226 221 | 
             
            - ".gitignore"
         | 
| @@ -261,19 +256,19 @@ files: | |
| 261 256 | 
             
            - lib/appium_lib_core/common.rb
         | 
| 262 257 | 
             
            - lib/appium_lib_core/common/base.rb
         | 
| 263 258 | 
             
            - lib/appium_lib_core/common/base/bridge.rb
         | 
| 264 | 
            -
            - lib/appium_lib_core/common/base/bridge/mjsonwp.rb
         | 
| 265 | 
            -
            - lib/appium_lib_core/common/base/bridge/w3c.rb
         | 
| 266 259 | 
             
            - lib/appium_lib_core/common/base/capabilities.rb
         | 
| 267 | 
            -
            - lib/appium_lib_core/common/base/ | 
| 260 | 
            +
            - lib/appium_lib_core/common/base/device_ime.rb
         | 
| 268 261 | 
             
            - lib/appium_lib_core/common/base/driver.rb
         | 
| 262 | 
            +
            - lib/appium_lib_core/common/base/driver_settings.rb
         | 
| 263 | 
            +
            - lib/appium_lib_core/common/base/has_location.rb
         | 
| 264 | 
            +
            - lib/appium_lib_core/common/base/has_network_connection.rb
         | 
| 269 265 | 
             
            - lib/appium_lib_core/common/base/http_default.rb
         | 
| 270 266 | 
             
            - lib/appium_lib_core/common/base/platform.rb
         | 
| 267 | 
            +
            - lib/appium_lib_core/common/base/remote_status.rb
         | 
| 268 | 
            +
            - lib/appium_lib_core/common/base/rotable.rb
         | 
| 271 269 | 
             
            - lib/appium_lib_core/common/base/screenshot.rb
         | 
| 272 270 | 
             
            - lib/appium_lib_core/common/base/search_context.rb
         | 
| 273 271 | 
             
            - lib/appium_lib_core/common/command.rb
         | 
| 274 | 
            -
            - lib/appium_lib_core/common/command/common.rb
         | 
| 275 | 
            -
            - lib/appium_lib_core/common/command/mjsonwp.rb
         | 
| 276 | 
            -
            - lib/appium_lib_core/common/command/w3c.rb
         | 
| 277 272 | 
             
            - lib/appium_lib_core/common/device/app_management.rb
         | 
| 278 273 | 
             
            - lib/appium_lib_core/common/device/app_state.rb
         | 
| 279 274 | 
             
            - lib/appium_lib_core/common/device/battery_status.rb
         | 
| @@ -287,6 +282,7 @@ files: | |
| 287 282 | 
             
            - lib/appium_lib_core/common/device/ime_actions.rb
         | 
| 288 283 | 
             
            - lib/appium_lib_core/common/device/keyboard.rb
         | 
| 289 284 | 
             
            - lib/appium_lib_core/common/device/keyevent.rb
         | 
| 285 | 
            +
            - lib/appium_lib_core/common/device/orientation.rb
         | 
| 290 286 | 
             
            - lib/appium_lib_core/common/device/screen_record.rb
         | 
| 291 287 | 
             
            - lib/appium_lib_core/common/device/setting.rb
         | 
| 292 288 | 
             
            - lib/appium_lib_core/common/device/touch_actions.rb
         | 
| @@ -301,6 +297,7 @@ files: | |
| 301 297 | 
             
            - lib/appium_lib_core/common/ws/websocket.rb
         | 
| 302 298 | 
             
            - lib/appium_lib_core/device.rb
         | 
| 303 299 | 
             
            - lib/appium_lib_core/driver.rb
         | 
| 300 | 
            +
            - lib/appium_lib_core/element.rb
         | 
| 304 301 | 
             
            - lib/appium_lib_core/ios.rb
         | 
| 305 302 | 
             
            - lib/appium_lib_core/ios/device.rb
         | 
| 306 303 | 
             
            - lib/appium_lib_core/ios/device/clipboard.rb
         | 
| @@ -313,7 +310,10 @@ files: | |
| 313 310 | 
             
            - lib/appium_lib_core/ios/xcuitest/device/performance.rb
         | 
| 314 311 | 
             
            - lib/appium_lib_core/ios/xcuitest/device/screen.rb
         | 
| 315 312 | 
             
            - lib/appium_lib_core/ios_xcuitest.rb
         | 
| 316 | 
            -
            - lib/appium_lib_core/ | 
| 313 | 
            +
            - lib/appium_lib_core/mac2.rb
         | 
| 314 | 
            +
            - lib/appium_lib_core/mac2/bridge.rb
         | 
| 315 | 
            +
            - lib/appium_lib_core/mac2/device.rb
         | 
| 316 | 
            +
            - lib/appium_lib_core/mac2/device/screen.rb
         | 
| 317 317 | 
             
            - lib/appium_lib_core/version.rb
         | 
| 318 318 | 
             
            - lib/appium_lib_core/windows.rb
         | 
| 319 319 | 
             
            - lib/appium_lib_core/windows/bridge.rb
         | 
| @@ -325,7 +325,7 @@ homepage: https://github.com/appium/ruby_lib_core/ | |
| 325 325 | 
             
            licenses:
         | 
| 326 326 | 
             
            - Apache-2.0
         | 
| 327 327 | 
             
            metadata: {}
         | 
| 328 | 
            -
            post_install_message: | 
| 328 | 
            +
            post_install_message:
         | 
| 329 329 | 
             
            rdoc_options: []
         | 
| 330 330 | 
             
            require_paths:
         | 
| 331 331 | 
             
            - lib
         | 
| @@ -333,15 +333,15 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 333 333 | 
             
              requirements:
         | 
| 334 334 | 
             
              - - ">="
         | 
| 335 335 | 
             
                - !ruby/object:Gem::Version
         | 
| 336 | 
            -
                  version: '2. | 
| 336 | 
            +
                  version: '2.5'
         | 
| 337 337 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 338 338 | 
             
              requirements:
         | 
| 339 | 
            -
              - - " | 
| 339 | 
            +
              - - ">"
         | 
| 340 340 | 
             
                - !ruby/object:Gem::Version
         | 
| 341 | 
            -
                  version:  | 
| 341 | 
            +
                  version: 1.3.1
         | 
| 342 342 | 
             
            requirements: []
         | 
| 343 | 
            -
            rubygems_version: 3. | 
| 344 | 
            -
            signing_key: | 
| 343 | 
            +
            rubygems_version: 3.2.15
         | 
| 344 | 
            +
            signing_key:
         | 
| 345 345 | 
             
            specification_version: 4
         | 
| 346 346 | 
             
            summary: Minimal Ruby library for Appium.
         | 
| 347 347 | 
             
            test_files: []
         | 
| @@ -1,81 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            # Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 4 | 
            -
            # you may not use this file except in compliance with the License.
         | 
| 5 | 
            -
            # You may obtain a copy of the License at
         | 
| 6 | 
            -
            #
         | 
| 7 | 
            -
            #     http://www.apache.org/licenses/LICENSE-2.0
         | 
| 8 | 
            -
            #
         | 
| 9 | 
            -
            # Unless required by applicable law or agreed to in writing, software
         | 
| 10 | 
            -
            # distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 11 | 
            -
            # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 12 | 
            -
            # See the License for the specific language governing permissions and
         | 
| 13 | 
            -
            # limitations under the License.
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            module Appium
         | 
| 16 | 
            -
              module Core
         | 
| 17 | 
            -
                class Base
         | 
| 18 | 
            -
                  class Bridge
         | 
| 19 | 
            -
                    class MJSONWP < ::Selenium::WebDriver::Remote::OSS::Bridge
         | 
| 20 | 
            -
                      include Device::DeviceLock
         | 
| 21 | 
            -
                      include Device::Keyboard
         | 
| 22 | 
            -
                      include Device::ImeActions
         | 
| 23 | 
            -
                      include Device::Setting
         | 
| 24 | 
            -
                      include Device::Context
         | 
| 25 | 
            -
                      include Device::Value
         | 
| 26 | 
            -
                      include Device::FileManagement
         | 
| 27 | 
            -
                      include Device::KeyEvent
         | 
| 28 | 
            -
                      include Device::ImageComparison
         | 
| 29 | 
            -
                      include Device::AppManagement
         | 
| 30 | 
            -
                      include Device::AppState
         | 
| 31 | 
            -
                      include Device::ScreenRecord::Command
         | 
| 32 | 
            -
                      include Device::Device
         | 
| 33 | 
            -
                      include Device::TouchActions
         | 
| 34 | 
            -
                      include Device::ExecuteDriver
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                      def commands(command)
         | 
| 37 | 
            -
                        ::Appium::Core::Commands::MJSONWP::COMMANDS[command]
         | 
| 38 | 
            -
                      end
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                      # Returns all available sessions on the Appium server instance
         | 
| 41 | 
            -
                      def sessions
         | 
| 42 | 
            -
                        execute :get_all_sessions
         | 
| 43 | 
            -
                      end
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                      # For Appium
         | 
| 46 | 
            -
                      def log_event(vendor, event)
         | 
| 47 | 
            -
                        execute :post_log_event, {}, { vendor: vendor, event: event }
         | 
| 48 | 
            -
                      end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                      # For Appium
         | 
| 51 | 
            -
                      def log_events(type = nil)
         | 
| 52 | 
            -
                        args = {}
         | 
| 53 | 
            -
                        args['type'] = type unless type.nil?
         | 
| 54 | 
            -
             | 
| 55 | 
            -
                        execute :get_log_events, {}, args
         | 
| 56 | 
            -
                      end
         | 
| 57 | 
            -
             | 
| 58 | 
            -
                      def take_element_screenshot(element)
         | 
| 59 | 
            -
                        execute :take_element_screenshot, id: element.ref
         | 
| 60 | 
            -
                      end
         | 
| 61 | 
            -
             | 
| 62 | 
            -
                      def take_viewport_screenshot
         | 
| 63 | 
            -
                        # TODO: this hasn't been supported by Espresso driver
         | 
| 64 | 
            -
                        execute_script('mobile: viewportScreenshot')
         | 
| 65 | 
            -
                      end
         | 
| 66 | 
            -
             | 
| 67 | 
            -
                      def send_actions(_data)
         | 
| 68 | 
            -
                        raise Error::UnsupportedOperationError, '#send_actions has not been supported in MJSONWP'
         | 
| 69 | 
            -
                      end
         | 
| 70 | 
            -
             | 
| 71 | 
            -
                      # For Appium
         | 
| 72 | 
            -
                      # @param [Hash] id The id which can get as a response from server
         | 
| 73 | 
            -
                      # @return [::Selenium::WebDriver::Element]
         | 
| 74 | 
            -
                      def convert_to_element(id)
         | 
| 75 | 
            -
                        ::Selenium::WebDriver::Element.new self, element_id_from(id)
         | 
| 76 | 
            -
                      end
         | 
| 77 | 
            -
                    end # class MJSONWP
         | 
| 78 | 
            -
                  end # class Bridge
         | 
| 79 | 
            -
                end # class Base
         | 
| 80 | 
            -
              end # module Core
         | 
| 81 | 
            -
            end # module Appium
         |