Commit based release not is release_notes.md
Release tags are https://github.com/appium/ruby_lib/releases .
- Some changes for Appium 1.8.0
- Fix Security Vulnerability(Nokogiri)#761
- fix
Minitest
's revert: URL
- Bump the core library to 1.3.0
- The change have one breaking change for
start_recording_screen
(Android) - Read
docs/migration.md
- The change have one breaking change for
- Fix Bug: NameError: uninitialized constant Minitest::VERSION #750
- Fix
TypeError: superclass mismatch for class Test
for minitest5.11.0
+ PR
- Bump the core library to 1.2.5
- The changelog is here
- add
shell
command wrappedmobile: 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.
- Fix creating session for the new W3C createSession
- Add start/stop recording screen #674
- replace core directory to core library #665, #718
- No change for users
ap_
prefixed loggingsource_window
: useget_source
insteadios_version
: useplatform_version
insteadcurrent_app
: usecurrent_activity
, for example to know current app.
- Add unlock command: PR
- Be able to call
source
command from anyautomationName
- Get source from XCUITest with
xcuitest_source format: :json
:espresso
support
- Raise error if capability is wrong
Bug: NoMethodError: undefined method 'write_session_id' for #<Appium::Core::Driver:0x00007fa69119ce88>
#686- undefined local variable or method `patch_webdriver_element' #687
Hot-fix for v9.7.0: uninitialized constant Appium::VERSION #680
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.
- 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 typesget_log(type)
: To get logs associated withtype
- refactor: Reduce patch_webdriver_element and some DEPRECATIONs #663
- Remove deprecated methods:
- Android
client_xpath/client_xpaths
- Please use
xpath
orfind_element/s(:xpath, "xpaths")
- Please use
- iOS
get_page
- Please use
source
instead
- Please use
- Android
- Deprecated
- iOS
ios_version
,source_window
,page_window
- Please use
source
instead
- Please use
- iOS
- Remove deprecated methods:
- Refactor
XCUItest
for iOS anduiautomator2
for Android a bit
- missing extending
button
methods foruiautomator2
, Android
- 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 workTouchAction
andMultiAction
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
-
- We'll stop defining global scope driver by default. So, if you'd like to continue to define global scope, please call
- Add example to run multiple iOS Simulators doc
- Require Xcode 9 and Appium 1.6.6
scroll_to
is failed on some Android 5.0 and 5.1 devices
- Fixing
acroll_to
- Add alias
quit_driver
- Support
selenium-webdriver3.4.1+
- Support new
createSession
- Support new
- Drop
selenium-webdriver
3.0 ~ 3.4.0
since some methods depends onselenium-webdriver3.4.1+
- some refactoring
- add some documentations
- fix handling a tap gesture in xcuitest #611
- 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
- fix raise 500 error by
driver.remote_status
inappium_server_version
#599
- reduce gemfile size #591
- Exclude
ios_tests
,android_tests
andgrid
from gem
- Exclude
- add
touch_and_hols
formobile:
command in XCUITest #581 - Driver disables Pry pager without asking #582
- add grid environments in this repository.
- add mobile gesture,
mobile: alert
- add travis example for ios #573
- remove some redundant code #572, #571
- update api-demos #569
- 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
- Thanks for checking uiautomator2
- fix drag_from_to_for_duration gets server error #552
- 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
- update mobile gesture APIs for XCUITest(WDA) #514
- For XCUITest(WebDriverAgent)
- Users can call some
mobile:
methods withoutexecute_script('mobile: tap', args)
. - Users can write test code without
.ref
method for elements inexecute_script
. - Example: appium#537
- Support UIAutomator2 strategy for Android#505
- Fix some find elemenet methods#544
- allow using TestObject server #538
- Remove appium suffix from find element #532
- rename
@driver.find_element/s_with_appium
to@driver.find_element/s
- rename
- fix documentations
@driver.find_element/s_with_appium
- use
@driver.find_element/s
instead
- use
- Add toggle touch id enrollment #521
- 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
- iOS
- 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 ifperform
is called #511
- 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
- add tags_include/tags_exact to be able to find elements of arbitrary classes such as XCUIElementTypeTextView #488
- allow SAUCE_ENDPOINT env var to override sauce server url/path #485
- Read readme's
SAUCE_ENDPOINT
section.
- Read readme's
- Clarify disabling Sauce Labs. #471
- add getting performance #479
- require [email protected]
- Fix missed var rename #481
- wait / wait_true need global defaults #250
- You can set default value in
appium_lib
- e.g.: lib/appium_lib/driver.rb
- You can set default value in
- Problem with delta_x/delta_y in swipe method #461
- Revert fix arguments for
move_to
inswipe
method. in Appium v8.2.1 delta_x/delta_y
replace tooffset_*
for iOS- e.g.:
swipe start_x: start_x, start_y: start_y, end_offset_x: 0, offset_y: -100
- e.g.:
delta_x/delta_y
replace toend_*
for Android- e.g.:
swipe start_x: start_x, start_y: start_y, end_x: start_x, end_y: start_y - 100
- e.g.:
- The reason why there are two kind of arguments is the following issue.
- Revert fix arguments for
- Clarify disabling Sauce Labs. #471
- update documentations
- 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.
- Return only visible elements
- Problem with delta_x/delta_y in swipe method #461
delta_x/delta_y
are replaced tooffset_*
for iOS andend_*
for Android.
- update set_wait / no_wait logic #249
no_wait
just setimplicit_wait = 0
set_wait
just set@default_wait
or arbitrary time asimplicit_wait
- remove
last_waits
attribute
- automationName always nil if set automationName in server side #450
Support selenium-webdriver 3.0.4+
- Improve performance for button/s and text/s #442
- Should use
open_timeout
orread_timeout
instead oftimeout
#436 - add documentation for alternative long_press method #440
- add
appium_client_version
: appium#260 - add some tests and fix some rubocop syntax errors
- fix
set_immediate_value
: appium#263
- fix Finds exact in ios does not return an array #423
Thanks @slipy12
- update dependencies
- Support selenium-webdriver 3.0.2+
- If you'd like to use
selenium-webdriver2.x
, please useappium_lib9.0.0
- If you'd like to use
- Support selenium-webdriver 3.0.2+
- Drop Ruby 1.9.3, 2.0, 2.1 support
- Because these ruby versions have already stop updating.
- Support
XCUITest
strategy for iOS- Basically,
XCUITest
strategy is compatible withAppium
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
- Users who use
- Basically,
Special thanks to @montdidier
- fix arguments for
move_to
inswipe
method.- appium#405
- Please set
:delta_x
and:delta_y
as the distance from start to move.