{"id":13651359,"url":"https://github.com/appium/ruby_lib","last_synced_at":"2025-06-10T13:09:44.942Z","repository":{"id":7583193,"uuid":"8938683","full_name":"appium/ruby_lib","owner":"appium","description":":gem: Ruby library for Appium","archived":false,"fork":false,"pushed_at":"2025-06-10T07:12:49.000Z","size":176478,"stargazers_count":216,"open_issues_count":0,"forks_count":159,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-06-10T08:25:12.781Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubygems.org/gems/appium_lib","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appium.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":"contributing.md","funding":null,"license":"LICENSE-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"appium"}},"created_at":"2013-03-21T21:07:32.000Z","updated_at":"2025-06-10T07:12:52.000Z","dependencies_parsed_at":"2023-01-13T15:00:22.834Z","dependency_job_id":"d087ea48-ab08-44cf-90d9-fc9c248715a5","html_url":"https://github.com/appium/ruby_lib","commit_stats":{"total_commits":1442,"total_committers":38,"mean_commits":37.94736842105263,"dds":"0.47295423023578365","last_synced_commit":"612d944fc60b202d3e24c7e052004cef1b69c8d0"},"previous_names":[],"tags_count":199,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fruby_lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fruby_lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fruby_lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fruby_lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appium","download_url":"https://codeload.github.com/appium/ruby_lib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fruby_lib/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259040191,"owners_count":22797005,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T02:00:48.562Z","updated_at":"2025-06-10T13:09:44.924Z","avatar_url":"https://github.com/appium.png","language":"Ruby","funding_links":["https://opencollective.com/appium"],"categories":["Clients","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# appium_lib\n\n[![Gem Version](https://badge.fury.io/rb/appium_lib.svg)](http://badge.fury.io/rb/appium_lib)\n\n[![Downloads](https://img.shields.io/gem/dt/appium_lib.svg)](https://rubygems.org/gems/appium_lib)\n\n- [appium_lib on RubyGems](https://rubygems.org/gems/appium_lib)\n- [Documentation for appium_lib](https://www.rubydoc.info/github/appium/ruby_lib)\n    - [Documentation for core lib](http://www.rubydoc.info/github/appium/ruby_lib_core)\n        - Especially [driver method for Appium](http://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device)\n\nHelper 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.\n\n**Recommend** to use [ruby_lib_core](https://github.com/appium/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.\nOrdinary, `ruby_lib` worked with class driver, `$driver`, mainly.\nWe 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.\n\n# Setup\n## Requirement\n- [Appium](https://github.com/appium/appium#requirements)\n- Ruby: 3.0+\n\n### Ruby Lib and Appium\n\n- Ruby library version over `12.0.0` is based on Selenium v4\n    - Please read [changelog of 12.0.0](CHANGELOG.md#1200---2021-11-06) for more details to migrate from v11 to v12\n- Ruby library version over `9.8.0` requires Appium over `1.8`\n- Ruby library version under `9.7.5` can work with Appium under `1.7`\n\n## Start appium server\n\n### Appium 2\n\n```bash\n$ npm install --location=global appium\n$ appium driver install xcuitest  # proper driver name to install\n$ appium server\n```\n\n\u003e **Note** Please set `server_url` properly like the below for Appium v1.\n\u003e ```\n\u003e  opts = {\n\u003e    caps: {\n\u003e      automationName: 'xcuitest'\n\u003e      platformName: 'ios',\n\u003e      app: '/path/to/MyiOS.app'\n\u003e    },\n\u003e    appium_lib: {\n\u003e      server_url: 'http://127.0.0.1:4723/wd/hub'\n\u003e    }\n\u003e  }\n\u003e  appium_driver = Appium::Driver.new(opts)\n\u003e  appium_driver.start_driver\n\u003e ```\n\n### Appium 1\n```bash\n$ npm install -g appium\n$ appium\n```\n\n## Install / Upgrade\n\n```bash\ngem install appium_lib\n```\n\n## [Sauce Labs env vars](https://github.com/appium/ruby_lib/blob/master/lib/appium_lib/sauce_labs.rb)\n\n- `SAUCE_USERNAME` Sauce username\n- `SAUCE_ACCESS_KEY` Sauce API key\n- `SAUCE_ENDPOINT` Alternative Sauce Appium Server endpoint (only use if directed)\n\n(Note: If these variables are set, all tests will use Sauce Labs unless over-ridden in configuration.)\n\n# Documentation\n\n- [Getting started](https://github.com/appium/appium)\n- [Overview](https://github.com/appium/ruby_lib/blob/master/docs/docs.md)\n- [Ruby Android methods](https://github.com/appium/ruby_lib/blob/master/docs/android_docs.md)\n- [Ruby iOS methods](https://github.com/appium/ruby_lib/blob/master/docs/ios_docs.md)\n    - [Tips for XCUITest for iOS](https://github.com/appium/ruby_lib/blob/master/docs/ios_xcuitest.md)\n\n# Related libraries\n- [ruby_lib_core](https://github.com/appium/ruby_lib_core): Bridged commands, WebDriver dependencies\n    - We add new endpoints for Appium in the core library, and `ruby_lib` call the methods.\n- [ruby_console](https://github.com/appium/ruby_console): Appium Ruby Console\n- [appium_capybara](https://github.com/appium/appium_capybara): Gem enabling appium support in capybara\n\n# Load Pry\n`Pry.config.pager = false` is set if you have no `.pryrc` files and `Pry` is defined.\n\n# Run tests in parallel\nThis repository has examples for running tests in parallel. Read [ios_tests](https://github.com/appium/ruby_lib/tree/master/ios_tests) to see them.\n\n# Contribute\n## How to add new commands for `driver`\n- Add the new commands in [ruby_lib_core](https://github.com/appium/ruby_lib_core). [An example](https://github.com/appium/ruby_lib_core/commit/cdb02c29c8663d22d643b52fd65c8b2d1373bebb)\n\n## How to add new helpful methods\n- Add the new methods in this library\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappium%2Fruby_lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappium%2Fruby_lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappium%2Fruby_lib/lists"}