diff --git a/README.md b/README.md index 70d035c5e..159fd1613 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,13 @@ Appium [![Build Status](https://api.travis-ci.org/appium/appium.png?branch=master)](https://travis-ci.org/appium/appium) Appium is an open source, cross-platform test automation tool for native and -hybrid mobile apps. It supports both iOS and Android. Appium drives Apple's -UIAutomation library and Android's UiAutomator framework (for newer platforms) -using Selenium's WebDriver JSON wire protocol. Appium is based on [Dan -Cuellar's](http://github.com/penguinho) work on iOS Auto. Appium also comes -bundled with [Selendroid](http://github.com/DominikDary/selendroid) for testing -older Android platforms. +hybrid mobile apps. It supports iOS, Android, and FirefoxOS platforms. Appium +drives Apple's UIAutomation library and Android's UiAutomator framework (for +newer platforms) using Selenium's WebDriver JSON wire protocol. Appium's iOS +support is based on [Dan Cuellar's](http://github.com/penguinho) work on iOS +Auto. Appium also comes bundled with +[Selendroid](http://github.com/DominikDary/selendroid) for testing older +Android platforms. Testing with Appium has two big benefits: @@ -58,15 +59,23 @@ Option 2: Run Appium from the command line using Node: appium & node simplest.js +See the next section for links on how to make sure your system is set up to run Appium tests. + Example Tests: [Node.js](https://github.com/appium/appium/tree/master/sample-code/examples/node) | [Python](https://github.com/appium/appium/tree/master/sample-code/examples/python) | [PHP](https://github.com/appium/appium/tree/master/sample-code/examples/php) | [Ruby](https://github.com/appium/appium/tree/master/sample-code/examples/ruby) | [Java](https://github.com/appium/appium/tree/master/sample-code/examples/java) -Write Tests for Appium +Troubleshooting +--------------- + +We put together a [troubleshooting guide](https://github.com/appium/appium/blob/master/docs/troubleshooting.md). Please have a look here first if you run into any problems. It contains instructions for checking a lot of common errors and how to get in touch with the community if you're stumped. + +Write Tests for Your Apps with Appium ------------------- We support a sub-set of the [Selenium WebDriver JSON Wire Protocol](https://github.com/appium/appium/wiki/JSON-Wire-Protocol:-Supported-Methods). +You find elements by using a sub-set of WebDriver's element-finding strategies. See [finding elements](https://github.com/appium/appium/blob/master/docs/finding-elements.md) for detailed information. + We also have several extensions to the JSON Wire Protocol for [automating -mobile -gestures](https://github.com/appium/appium/wiki/Automating-mobile-gestures) +mobile gestures](https://github.com/appium/appium/wiki/Automating-mobile-gestures) like tap, flick, and swipe. You can also automate web views in hybrid apps! See the [hybrid app @@ -83,6 +92,8 @@ We support Android and iOS platforms side-by-side: * [Run an Android test](https://github.com/appium/appium/blob/master/docs/running-tests.md#android-ios) * [Getting started with Appium and Ruby on OS X](https://github.com/appium/ruby_console/blob/master/osx.md) +For the full list of Appium doc pages, visit [this directory](https://github.com/appium/appium/blob/master/docs/). + - - - Hacking with Appium @@ -165,9 +176,10 @@ Running Tests Once, your system is set up and your code is up to date, you can run various kinds of tests: - grunt functional grunt android grunt ios + grunt selendroid + grunt firefoxos grunt unit Or you can run all tests: diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 290cbcb9d..52ece0887 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -9,20 +9,6 @@ to github or write to the appium-discuss mailing list. * Make sure your system is set up appropriately (i.e., XCode is updated, Android SDK is installed and `ANDROID_HOME` is set: [setup instructions](https://github.com/appium/appium/blob/master/docs/running-on-osx.md)) * Make sure the paths to your applications are correct -# Android - -* Make sure the Android emulator is up and running. -* It's sometimes useful to run `adb kill-server && adb devices`. This can reset the connection to the Android device. -* Make sure you know about the `app-package`, `app-activity`, and `app-wait-activity` desiredCapabilities (see [this doc](https://github.com/appium/appium/blob/master/docs/running-tests.md#run-android) for more information). - -# IOS - -* Make sure Instruments.app is not open -* If you're running the simulator, make sure your actual device is not plugged in -* Make sure the accessibility helper is turned off in your Settings app -* Make sure the app is compiled for the version of the simulator that's being run -* If you've ever run Appium with sudo, you might need to `sudo rm /tmp/instruments_sock` and try again as not-sudo. - # If you're running Appium.app * Update the app and restart. If you get a message saying the app can't be updated, @@ -38,13 +24,33 @@ to github or write to the appium-discuss mailing list. ./reset.sh --android # android-only ./reset.sh --selendroid # selendroid-only +# Android + +* Make sure the Android emulator is up and running. +* It's sometimes useful to run `adb kill-server && adb devices`. This can reset the connection to the Android device. +* Make sure you know about the `app-package`, `app-activity`, and `app-wait-activity` desiredCapabilities (see [this doc](https://github.com/appium/appium/blob/master/docs/running-tests.md#run-android) for more information). + +# IOS + +* Make sure Instruments.app is not open +* If you're running the simulator, make sure your actual device is not plugged in +* Make sure the accessibility helper is turned off in your Settings app +* Make sure the app is compiled for the version of the simulator that's being run +* If you've ever run Appium with sudo, you might need to `sudo rm /tmp/instruments_sock` and try again as not-sudo. +* If this is the first time you've run Appium, make sure to authorize the use of Instruments. Usually a box will pop up that you enter your password into. If you're running Appium from source, you can simply run `sudo grunt authorize` from the main repo to avoid getting this popup. + +# FirefoxOS + +* Make sure the Boot-to-Gecko simulator is up and running. +* Make sure the simulator screen is alive and unlocked (might require restarting B2G). + # Let the community know Once you've tried the above steps and your issue still isn't resolved, here's what you can do: If you've found what you believe is a bug, go straight to the [issue tracker](https://github.com/appium/appium/issues) and submit an issue describing the bug and a repro case. -If you're having trouble getting Appium working and the error messages Appium provides are not clear, join the [mailing list](https://groups.google.com/forum/?fromgroups=#!forum/appium-discuss) and send a message. Please include the following: +If you're having trouble getting Appium working and the error messages Appium provides are not clear, join the [mailing list](https://groups.google.com/d/forum/appium-discuss) and send a message. Please include the following: * How you're running Appium (Appium.app, npm, source) * The client-side and server-side errors you're getting (i.e., "In Python this is the exception I get in my test script, and here's a link to a paste of the Appium server output)