Skip to content

Latest commit

 

History

History
954 lines (671 loc) · 28.9 KB

CHANGELOG.md

File metadata and controls

954 lines (671 loc) · 28.9 KB

Changelogs

Commit based release not is release_notes.md

Release tags are https://github.com/appium/ruby_lib/releases .

15.2.2 - 2024-08-06

  • Fix non app capability behavior

15.2.1 - 2024-08-03

  • Fix client side timeout in the default http client
  • Bump appium_lib_core 9.2.1+ to apply the fix

15.2.0 - 2024-07-20

  • Raise defined errors instead of Ruby general errors by appium_lib's own errors

15.1.0 - 2024-05-19

  • Use appium_lib_core 9.0.0

15.0.1 - 2024-04-26

  • Bump release module (internal only)

15.0.0 - 2024-04-11

  • Breaking
    • Use appium_lib_core 8.0.0 and up
      • Please refer to the diff about the details.
      • Remove Appium::MultiTouch and Appium::TouchAction
        • swipe could use mobile:swipe, or w3c actions. Multi-touch actions such as zoom/pinch can be written in w3c actions.
        • Please use w3c actions instead. Several resources such as test code in ruby_lib_core also would help to check the syntax.

14.0.0 - 2024-01-25

  • Use appium_lib_core 7.4.0 and up
    • Removed deprecated export_session and export_session_path
    • Please get the session id via driver.session_id instead

13.0.2 - 2024-01-25

  • Allow up to appium_lib_core 7.3

13.0.1 - 2023-06-19

  • Ruby 3.0+ is required

12.3.3 - 2023-04-27

Bug fixes

  • Fix start_driver

12.2.1 - 2023-04-24

1. Enhancements

2. Bug fixes

  • fixed the default_wait value as zero (regression) set_wait will set 0 if no appium_lib: {wait: 0} is not given.

3. Deprecations

12.2.0 - 2022-12-25

1. Enhancements

2. Bug fixes

3. Deprecations

  • Defaults to XCUITest modulefor iOS

12.1.3 - 2022-12-13

1. Enhancements

  • Minor internal update

2. Bug fixes

3. Deprecations

12.1.2 - 2022-11-13

1. Enhancements

2. Bug fixes

  • Fix app capability handling in parsing a toml file

3. Deprecations

12.1.1 - 2022-10-19

1. Enhancements

2. Bug fixes

  • Fix undefined .warning method call

3. Deprecations

12.1.0 - 2022-10-11

1. Enhancements

  • Bump minimal ruby_lib_core version

2. Bug fixes

3. Deprecations

  • Deprecate Appium::Driver.absolute_app_path, instead, please set proper app capability
    • This aims to reduce client side validation as same as other clients.

12.0.1 - 2022-04-02

1. Enhancements

2. Bug fixes

  • Fixes promote_appium_methods

3. Deprecations

12.0.0 - 2021-11-06

1. Enhancements

  • Update ruby_lib_core version from v4 to v5. The change affects this library.
    • Migration from v4 to v5 in ruby_lib_core client
      • Base Selenium Ruby binding is now v4
      • Support only W3C WebDriver spec (and a few Appium specific commands)
      • Support Ruby 2.6+
    • element.id returns the element id instead of element.ref
      • element.ref now returns an array
    • Removed forceMjsonwp to send only MJSONWP capabilities since Selenium cleint v4 no longer supports MJSONWP
    • No longer set default timeouts as 0
      • ruby_lib_core will call /timeouts endpoint only when appium_lib: { wait: 5 } is provided explicitly
    • Raises ::Appium::Core::Error::ArgumentError instead of ArgumentError for this library specific argument errors

2. Deprecations

11.1.0 - 2020-12-29 (11.2.0 is the same as this version)

Support Ruby 3

1. Enhancements

2. Bug fixes

3. Deprecations

  • Rename Appium::Ios::Xcuitest::Guesture#tap to Appium::Ios::Xcuitest::Guesture#one_finger_tap to prevent conflicts with tap in Ruby

11.0.0 - 2020-12-19

Bump supported Ruby version to 2.4+

related changes in ruby_lib_core.

10.6.0

1. Enhancements

2. Bug fixes

3. Deprecations

v10.5.0

1. Enhancements

  • Added driver.log_event to post an event
  • Added driver.log_events to get the events

2. Bug fixes

3. Deprecations

v10.4.1

1. Enhancements

2. Bug fixes

  • Fix iOS page in native context

3. Deprecations

v10.4.0

1. Enhancements

  • Add execute_driver support

2. Bug fixes

  • Fix wrong warning message in create session

3. Deprecations

v10.3.1

1. Enhancements

2. Bug fixes

  • Fix scroll_to and scroll_to_exact for Android #859

3. Deprecations

v10.3.0

1. Enhancements

  • Add tvOS support
    • Requires Appium 1.13

2. Bug fixes

3. Deprecations

v10.2.0

1. Enhancements

2. Bug fixes

  • Breaking changes
    • find_element/s_by_image no longer need arguments except for a file path
      • find_element/s_by_image(file_to_image) instead of find_element/s_by_image(file_to_image, match_threshold:, visualize:)

3. Deprecations

v10.1.0

1. Enhancements

2. Bug fixes

  • *_exact methods handle value as case sensitive
    • This might break test cases if it calls *_exact as case insensitive

3. Deprecations

v10.0.0

This change has a breaking change about implicit wait.

1. Enhancements

  • Breaking changes
    • Set implicit wait zero by default following WebDriver spec in Selenium
      • The change potentially break your find_element/s
      • You can wrap it with wait method to avoid the error explicitly
      • Or you also can configure wait: 20 as appium_lib capability to keep the behaviour
  • [Experimental]
    • Add direct_connect capability
      • How to use: { caps: {...}, appium_lib: { direct_connect: true }}
      • Read here for more details

2. Bug fixes

3. Deprecations

v9.18.0

1. Enhancements

  • Enhance Espresso automation name adaptation
    • Call xpath locator strategy instead of uiautomator locator strategy in various wrapper methods like text/s, button/s, etc
    • #884

2. Bug fixes

3. Deprecations

v9.17.0

1. Enhancements

  • Add action wrapping ruby_lib_core for W3C actions
    • Returns TouchAction.new if the driver works as MJSONWP

2. Bug fixes

3. Deprecations

  • :offset_x and :offset_y in TouchAction#swipe is deprecated in favor of :end_x and :end_y
  • [internal] Remove check_server_version_xcuitest

v9.16.1

1. Enhancements

2. Bug fixes

  • Fix failing Appium version comparison #836

3. Deprecations

v9.16.0

1. Enhancements

  • Introduce appium_thor in order to automate release

2. Bug fixes

  • :app can be non-path capability like Windows
    { caps:
      { platformName: :windows,
        app: 'Microsoft.WindowsCalculator_8wekyb3d8bbwe!App'
      }
    } # `:app` is bundle id.
    
    { caps:
      { platformName: :windows,
        app: 'relative/path/to/app'
      }
    } # `:app` will be alsolute path to the `:app` if the path exists

3. Deprecations

v9.15.2

1. Enhancements

  • Wrap selenium-webdriver apis via Appium::Driver through Appium Core Bridge #827

2. Bug fixes

3. Deprecations

v9.15.1

1. Enhancements

  • [Internal] Use ruby_lib_core 2.0
    • The change shouldn't affect this version since the change influence Core.new.

2. Bug fixes

3. Deprecations

v9.15.0

1. Enhancements

  • Requires appium_lib_core 1.9.0+
  • Add distance option in scroll for XCUITest #805. Thanks @saim80

2. Bug fixes

3. Deprecations

v9.14.3

1. Enhancements

2. Bug fixes

3. Deprecations

v9.14.2

1. Enhancements

  • add mobile: installCertificate shortcut for XCUITest
  • add mobile: getContexts shortcut for XCUITest
  • Add find_element_by_image and find_elements_by_image to handle ImageElement
    • Read a PR and Core for more details
    • Experimental feature

2. Bug fixes

3. Deprecations

v9.14.1

1. Enhancements

2. Bug fixes

  • Fix an initialisation error for iOS with appium_lib_core 1.7.0 #785

3. Deprecations

v9.14.0

1. Enhancements

2. Bug fixes

3. Deprecations

v9.13.0

1. Enhancements

2. Bug fixes

3. Deprecations

v9.12.1

1. Enhancements

  • Support start_logs_broadcast and stop_logs_broadcast for iOS

2. Bug fixes

  • Back compatible for wait(number) {} and wait_true(number) {}

3. Deprecations

v9.12.0

1. Enhancements

2. Bug fixes

3. Deprecations

  • Changed the name of arguments
    • swipe(start_x:, start_y:, end_x:, end_y:) instead of swipe(start_x:, start_y:, offset_x:, offset_y:)

v9.11.1

1. Enhancements

2. Bug fixes

  • Fix wait compatibility for ruby_lib_core ~> 1.4.1

3. Deprecations

v9.11.0

1. Enhancements

2. Bug fixes

3. Deprecations

v9.10.0

1. Enhancements

2. Bug fixes

3. Deprecations

v9.9.2

1. Enhancements

  • Fix Security Vulnerability(Nokogiri)#761

2. Bug fixes

3. Deprecations

v9.9.1

1. Enhancements

2. Bug fixes

  • fix Minitest's revert: URL

3. Deprecations

v9.9.0

1. Enhancements

  • Bump the core library to 1.3.0
    • The change have one breaking change for start_recording_screen(Android)

2. Bug fixes

3. Deprecations

v9.8.5

1. Enhancements

2. Bug fixes

  • Fix Bug: NameError: uninitialized constant Minitest::VERSION #750

3. Deprecations

v9.8.4

1. Enhancements

2. Bug fixes

  • Fix TypeError: superclass mismatch for class Test for minitest 5.11.0+ PR

3. Deprecations

v9.8.3

1. Enhancements

  • Bump the core library to 1.2.5
    • The changelog is here

2. Bug fixes

3. Deprecations

v9.8.2

1. Enhancements

  • add shell command wrapped mobile: shell for Android #732
  • add handling multiple apps for iOS #729
  • Adapt W3C commands and make sure to work Appium 1.7.2+
    • Which module, msjsonwp or w3c, used depends on server side's response.

2. Bug fixes

3. Deprecations

v9.8.1

1. Enhancements

2. Bug fixes

3. Deprecations

v9.8.0

1. Enhancements

  • Add start/stop recording screen #674
  • replace core directory to core library #665, #718
    • No change for users

2. Bug fixes

3. Deprecations

  • ap_ prefixed logging
  • source_window: use get_source instead
  • ios_version: use platform_version instead
  • current_app: use current_activity, for example to know current app.

v9.7.5

1. Enhancements

2. Bug fixes

3. Deprecations

v9.7.4

1. Enhancements

  • Add unlock command: PR
  • Be able to call source command from any automationName

2. Bug fixes

3. Deprecations

v9.7.3

1. Enhancements

  • Get source from XCUITest with xcuitest_source format: :json
  • :espresso support

2. Bug fixes

3. Deprecations

v9.7.2

1. Enhancements

2. Bug fixes

  • Bug: NoMethodError: undefined method 'write_session_id' for #<Appium::Core::Driver:0x00007fa69119ce88> #686
  • undefined local variable or method `patch_webdriver_element' #687

3. Deprecations

v9.7.1

Hot-fix for v9.7.0: uninitialized constant Appium::VERSION #680

v9.7.0

v9.7.0 has a bunch of refactoring but the behaviours must be the same as well as previous versions. I've checked the behaviour and confirmed test cases in this repository. So, please create issues if you have any issues against this version.

1. Enhancements

  • Refactoring
lib/appium_lib         # root directory
              /core    # Minumul driver files for the Appium server and dependencies for Selenium Driver.
              /common  # Appium related(some methods to make ruby_lib useful)
              /android # for Android
              /ios     # for iOS
  • The core directory will separate as the other gem in separate core as core ruby gem #665
  • Logs
    • get_available_log_types: To get a list of available log types
    • get_log(type): To get logs associated with type

2. Bug fixes

3. Deprecations

v9.6.1

1. Enhancements

  • Refactor XCUItest for iOS and uiautomator2 for Android a bit

2. Bug fixes

  • missing extending button methods for uiautomator2, Android

3. Deprecations

v9.6.0

1. Enhancements

  • Reduce Global Driver
    • We'll stop defining global scope driver by default. So, if you'd like to continue to define global scope, please call start_driver as the following.
      Appium::Driver.new(opts, true).start_driver # $driver is defined.
      Appium::Driver.new(opts, false).start_driver # $driver isn't defined.
    • We need to provide driver to work TouchAction and MultiAction without global driver
      • TouchAction

        driver =  Appium::Driver.new(opts, false).start_driver
        action = TouchAction.new.press(x: 45, y: 100).wait(5).release
        action.perform(driver)
        action = TouchAction.new.swipe(....)
        action.perform(driver)
      • MultiAction

        driver =  Appium::Driver.new(opts, false).start_driver
        pinch 200, true, driver
  • Add example to run multiple iOS Simulators doc
    • Require Xcode 9 and Appium 1.6.6

2. Bug fixes

  • scroll_to is failed on some Android 5.0 and 5.1 devices

3. Deprecations

Special Thanks

v9.5.0

1. Enhancements

  • Support selenium-webdriver3.4.1+
    • Support new createSession

2. Bug fixes

3. Deprecations

  • Drop selenium-webdriver 3.0 ~ 3.4.0 since some methods depends on selenium-webdriver3.4.1+

v9.4.10

1. Enhancements

  • some refactoring
  • add some documentations

2. Bug fixes

3. Deprecations

v9.4.9

1. Enhancements

2. Bug fixes

  • fix handling a tap gesture in xcuitest #611

3. Deprecations

v9.4.8

1. Enhancements

  • within_context swallowing block return value #311
  • get current_package for Android #604
  • Show visibility on iOS page command #609
    • related: allow showing all elements on ios page command #310

2. Bug fixes

3. Deprecations

  • Android: mark deprecated for client side xpath strategy #608
  • iOS: get_page method #609

v9.4.7

1. Enhancements

2. Bug fixes

  • fix raise 500 error by driver.remote_status in appium_server_version #599

3. Deprecations

v9.4.6

1. Enhancements

2. Bug fixes

  • reduce gemfile size #591
    • Exclude ios_tests, android_tests and grid from gem

3. Deprecations

v9.4.5

1. Enhancements

  • add touch_and_hols for mobile: command in XCUITest #581
  • Driver disables Pry pager without asking #582
  • add grid environments in this repository.

2. Bug fixes

3. Deprecations

v9.4.4

1. Enhancements

2. Bug fixes

3. Deprecations

v9.4.3

1. Enhancements

  • Use uiautomator for uiautomator2 #561
    • improve stability for some methods
  • don't use selenium-webdriver 3.5+ #559
  • Auto link bug # from release notes #239

2. Bug fixes

3. Deprecations

Special Thanks

v9.4.2

1. Enhancements

2. Bug fixes

  • fix drag_from_to_for_duration gets server error #552

3. Deprecations

v9.4.1

1. Enhancements

2. Bug fixes

  • fix 9.4.0 release sudden failures #546
    • XPath strategy for find_element/s sudden fail than uiautomator strategy.
    • Use :xpath strategy only for uiautomator2

3. Deprecations

v9.4.0

1. Enhancements

  • update mobile gesture APIs for XCUITest(WDA) #514
    • For XCUITest(WebDriverAgent)
    • Users can call some mobile: methods without execute_script('mobile: tap', args).
    • Users can write test code without .ref method for elements in execute_script.
    • Example: #537
  • Support UIAutomator2 strategy for Android#505
    • Fix some find elemenet methods#544

2. Bug fixes

3. Deprecations

v9.3.8

1. Enhancements

  • allow using TestObject server #538

2. Bug fixes

3. Deprecations

v9.3.7

1. Enhancements

  • Remove appium suffix from find element #532
    • rename @driver.find_element/s_with_appium to @driver.find_element/s
  • fix documentations

2. Bug fixes

3. Deprecations

  • @driver.find_element/s_with_appium
    • use @driver.find_element/s instead

v9.3.6

1. Enhancements

  • Add toggle touch id enrollment #521

2. Bug fixes

3. Deprecations

v9.3.5

1. Enhancements

  • add some commands for Android and class chain for iOS #513
    • iOS
      • find_element :class_chain, 'XCUIElementTypeWindow/*/*/XCUIElementTypeStaticText'
    • Android
      • get_system_bars
      • get_display_density
      • is_keyboard_shown
  • add scrollable index parameter into scroll methods #506
    • scroll_to(text, scrollable_index = 0)
    • scroll_to_exact(text, scrollable_index = 0)
  • clear @actions in Appium::TouchAction if perform is called #511

2. Bug fixes

3. Deprecations

v9.3.4

1. Enhancements

  • remove workaround to pass CI
  • document uiautomator events logging command #319
  • use predicate for XCUITest to improve performance #493
    • text/s, button/s, textfield/s, tags_exact, tags_include
    • new: find_ele/s_by_predicate, find_ele/s_by_predicate_include

2. Bug fixes

3. Deprecations

v9.3.3

1. Enhancements

  • add tags_include/tags_exact to be able to find elements of arbitrary classes such as XCUIElementTypeTextView #488

2. Bug fixes

3. Deprecations

v9.3.2

1. Enhancements

  • allow SAUCE_ENDPOINT env var to override sauce server url/path #485
    • Read readme's SAUCE_ENDPOINT section.

2. Bug fixes

3. Deprecations

v9.3.1

1. Enhancements

2. Bug fixes

  • Fix missed var rename #481

3. Deprecations

v9.3.0

1. Enhancements

  • wait / wait_true need global defaults #250
  • Problem with delta_x/delta_y in swipe method #461
    • Revert fix arguments for move_to in swipe method. in Appium v8.2.1
    • delta_x/delta_y replace to offset_* for iOS
      • e.g.: swipe start_x: start_x, start_y: start_y, end_offset_x: 0, offset_y: -100
    • delta_x/delta_y replace to end_* for Android
      • e.g.: swipe start_x: start_x, start_y: start_y, end_x: start_x, end_y: start_y - 100
    • The reason why there are two kind of arguments is the following issue.
  • Clarify disabling Sauce Labs. #471
    • update documentations

2. Bug fixes

  • REQUIRED_VERSION_XCUITEST #463
  • find elements except for name attributes in text/s, button/s #462
    • Return only visible elements
      • Previously, these methods return all elements.

3. Deprecations

  • Problem with delta_x/delta_y in swipe method #461
    • delta_x/delta_y are replaced to offset_* for iOS and end_* for Android.

v9.2.0

1. Enhancements

  • update set_wait / no_wait logic #249
    • no_wait just set implicit_wait = 0
    • set_wait just set @default_wait or arbitrary time as implicit_wait
    • remove last_waits attribute

2. Bug fixes

  • automationName always nil if set automationName in server side #450

3. Deprecations

v9.1.3

Support selenium-webdriver 3.0.4+

1. Enhancements

  • Improve performance for button/s and text/s #442
  • Should use open_timeout or read_timeout instead of timeout #436
  • add documentation for alternative long_press method #440

2. Bug fixes

3. Deprecations

v9.1.2

1. Enhancements

  • add appium_client_version: #260
  • add some tests and fix some rubocop syntax errors

2. Bug fixes

  • fix set_immediate_value: #263

3. Deprecations

v9.1.1

1. Enhancements

2. Bug fixes

  • fix Finds exact in ios does not return an array #423

3. Deprecations

Thanks @slipy12

v9.1.0

1. Enhancements

  • update dependencies
    • Support selenium-webdriver 3.0.2+
      • If you'd like to use selenium-webdriver2.x, please use appium_lib9.0.0

2. Bug fixes

3. Deprecations

  • Drop Ruby 1.9.3, 2.0, 2.1 support
    • Because these ruby versions have already stop updating.

v9.0.0

1. Enhancements

  • Support XCUITest strategy for iOS
    • Basically, XCUITest strategy is compatible with Appium strategy in this library.
    • But users who use XPath should be check this document since XPath has performance issue
      • Users who use find_element/s should work fine.
      • tests for elements are here

Special thanks to @montdidier

2. Bug fixes

3. Deprecations

v8.2.1

  • fix arguments for move_to in swipe method.
    • #405
    • Please set :delta_x and :delta_y as the distance from start to move.