appium_lib
Helper methods for writing cross platform (iOS, Android) tests in Ruby using Appium. Note that user waits should not exceed 120 seconds if they're going to run on Sauce Labs.
Recommend to use ruby_lib_core, which works as a Ruby client for Appium. ruby_lib wraps the core library with some additional helpful methods, but some of wrapped methods may have unexpected complexity.
Ordinary, ruby_lib worked with class driver, $driver, mainly.
We can avoid the class driver with current ruby_lib, but if you'd like to implement your test cases based on instance driver, @driver, you can consider using ruby_lib_core first.
Setup
Requirement
- Appium
- Ruby: 3.0+
Ruby Lib and Appium
- Ruby library version over
12.0.0is based on Selenium v4- Please read changelog of 12.0.0 for more details to migrate from v11 to v12
- Ruby library version over
9.8.0requires Appium over1.8 - Ruby library version under
9.7.5can work with Appium under1.7
Start appium server
Appium 2
$ npm install --location=global appium
$ appium driver install xcuitest # proper driver name to install
$ appium serverNote Please set
server_urlproperly like the below for Appium v1.opts = { caps: { automationName: 'xcuitest' platformName: 'ios', app: '/path/to/MyiOS.app' }, appium_lib: { server_url: 'http://127.0.0.1:4723/wd/hub' } } appium_driver = Appium::Driver.new(opts) appium_driver.start_driver
Appium 1
$ npm install -g appium
$ appiumInstall / Upgrade
gem install appium_lib-
SAUCE_USERNAMESauce username -
SAUCE_ACCESS_KEYSauce API key -
SAUCE_ENDPOINTAlternative Sauce Appium Server endpoint (only use if directed)
(Note: If these variables are set, all tests will use Sauce Labs unless over-ridden in configuration.)
Documentation
Related libraries
-
ruby_lib_core: Bridged commands, WebDriver dependencies
- We add new endpoints for Appium in the core library, and
ruby_libcall the methods.
- We add new endpoints for Appium in the core library, and
- ruby_console: Appium Ruby Console
- appium_capybara: Gem enabling appium support in capybara
Load Pry
Pry.config.pager = false is set if you have no .pryrc files and Pry is defined.
Run tests in parallel
This repository has examples for running tests in parallel. Read ios_tests to see them.
Contribute
How to add new commands for driver
- Add the new commands in ruby_lib_core. An example
How to add new helpful methods
- Add the new methods in this library