- Notifications
You must be signed in to change notification settings - Fork23
Core library for the Ruby client
License
appium/ruby_lib_core
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This library is a Ruby client for Appium. The gem is available viaappium_lib_core.
This library wrapsselenium-webdriver and adapts WebDriver APIs for Appium.ruby_lib calls all of Appium/Selenium related APIs via this core library. It works instance based driver.
- https://www.rubydoc.info/gems/appium_lib_core
- You can find working API examples in test code,test/functional
- Appium 2.0
- https://appium.github.io/appium/docs/en/2.0/ (Not completed yet)
Please read[5.0.0]
section inCHANGELOG
Run unit tests which check each method and command, URL, using the webmock.
$ bundle install$ bundleexec parallel_test test/unit/
or
$ bundle install$ bundleexec rake test:unit
Run functional tests which require the Appium server and real device, Simulator/Emulator.
- Start Appium server (Appium 2.0 base)
$ npm install --location=global appium$ appium driver install xcuitest$ appium driver install uiautomator2# etc$ appium --relaxed-security# To run all tests in local
- Conduct tests
$ bundle install$ rake test:func:android# Andorid, uiautomator2$ APPIUM_DRIVER=espresso rake test:func:android# Andorid, uiautomator2$ rake test:func:ios# iOS
- You should pre-installUICatalog in iOS with a particular
bundleId
- Set the
bundleId
instead ofapp
intest/test_helper#ios
- Set the
# Create derivedDataPath in "/tmp/#{org_id}" and reuse xctestrun in the directory$ REAL=true BUNDLE_ID='target-bundleid' WDA_BUNDLEID="ios.appium.WebDriverAgentRunner" ORG_ID=XXXXXXX rake test:func:ios# Run with xcconfig file. The template is in 'test/functional/ios/temp.xcconfig'# The PROVISIONING_PROFILE is in '~/Library/MobileDevice/Provisioning\ Profiles/'$ REAL=true XCODE_CONFIG_FILE='/path/to/xcconfig' ORG_ID=XXXXXXX rake test:func:ios
# Generate 3 emulators. Running 3 emulators require much machine power.# It requires an image which is for Google Play and x86 CPU architecture's image.$ bundle exec rake android:gen_device$ PARALLEL=1 bundle exec parallel_test test/functional/android -n 3
- Create iPhone simulators named
iPhone Xs Max- 8100
andiPhone Xs Max - 8101
- Run iOS functional tests with below command
$ PARALLEL=1 bundle exec parallel_test test/functional/ios -n 2
- Runs on CI environment (on Azure)
- Non
IGNORE_VERSION_SKIP
orIGNORE_VERSION_SKIP=true
runs all tests ignoringskip
them by Appium versions IGNORE_VERSION_SKIP=false
skips the following tests if the Appium version is lower than the requirement
- Non
$ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android
- Launch the Appium server locally.
- Run the following script.
test.rb
require'rubygems'require'appium_lib_core'opts={capabilities:{# Append capabilitiesplatformName:'ios',platformVersion:'18.4',deviceName:'iPhone 16 Plus',# app: '/path/to/MyiOS.app', # Without 'app' capability, an appium session starts with the home screenautomationName:'XCUITest'},appium_lib:{wait:30}}@core=Appium::Core.for(opts)# create a core driver with `opts`@driver=@core.start_driver# Launch iPhone Simulator and `MyiOS.app`@driver.find_element(:accessibility_id,'some accessibility')# find an element
- Run the script
# shell 1$ appium --log-level warn:error# show only warning and error logs# shell 2$ ruby test.rb
Appium::Core.for documentation has more example to build a new driver instance.
More examples are intest/functional
As of version 5.8.0, the client can attach to an existing session. The main purpose is for debugging.
# @driver is the driver instance of an existing sessionattached_driver= ::Appium::Core::Driver.attach_to@driver.session_id,url:'http://127.0.0.1:4723',automation_name:'XCUITest',platform_name:'ios'assertattached_driver.session_id ==@driver.session_idattached_driver.page_source
ReadAppium/Core/Driver to catch up with available capabilities.Capabilities affect only ruby_lib isAppium/Core/Options.
An example to define a customer listener withSelenium::WebDriver::Support::AbstractEventListener
classCustomListener < ::Selenium::WebDriver::Support::AbstractEventListener//somethingendcapabilities:{platformName::ios,platformVersion:'11.0',deviceName:'iPhone Simulator',automationName:'XCUITest',app:'/path/to/MyiOS.app'},appium_lib:{listener:CustomListener.new}@core=Appium::Core.forcapabilities:capabilities,appium_lib:appium_lib@core.start_driver
Useappium_thor to release this gem.
$ thor bump# bumpy,$ thor release
- Fork it (https://github.com/appium/ruby_lib_core/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
Apache License v2
About
Core library for the Ruby client
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors10
Uh oh!
There was an error while loading.Please reload this page.