Desktop Inspector

Appium Desktop is a suite of apps for Mac, Windows, and Linux which gives you the power of the Appium automation server in a beautiful and flexible UI. It is a combination of a few Appium-related tools:

  • A graphical interface for the Appium Server. You can set options, start/stop the server, see logs, etc.. You also don't need to use Node/NPM to install Appium, as the Node runtime comes bundled with Appium Desktop.
  • An Inspector that you can use to look at your app's elements (Safari/Chrome browser, native or hybrid app), get basic information about them, and perform basic interactions with them. This is useful as a way to learn about Appium or as a way to learn about your app so you can write tests for it.

Download Appium Desktop

You can always pick up the latest release of the Server GUI or the Inspector at ourRelease page onGitHub.

Here's how Appium desktop Inspector and Perfecto work together. What Is Appium Inspector for Desktop? Appium Inspector is a desktop object identification tool which is designed to help you discover and obtain unique object identifiers for the visible elements of. FREE Courses - Open Appium desktop client2. Start appium server3. Create new connection4. Provide desired.

Oct 01, 2020 MEDCOM clinical online courses are available on the TMS. EES awarded MEDCOM a multi-year contract for web-based health care education and training continuing education content. 1000+ courses from the MEDCOM catalog are available to VHA staff on the TMS. But, when you quit the Inspector window of an existing session, Appium Desktop will not quit the session as it does normally. Inspector is a visual representation of the state of your application along with the ability to perform certain interactions in your application through Appium. Remote Desktop Inspector helps the user to supervise desktop of the remote personal computer and meant for everyone which wish to know what other individuals do. Remote Desktop Inspector is handy and very simple instrument for employers which necessitates to handle their employees.

If you're on Windows or macOS, Appium Desktop will automatically provide youwith updated versions of the app when they are released. If you encountera problem updating, simply delete or uninstall the app and re-download thelatest from the link above.


Note that Appium Desktop is not the same thing as Appium. Appium Desktop isa graphical frontend to Appium with additional tools. Appium Desktop isreleased on its own cadence and has its own versioning system. If you arereporting an issue with Appium Desktop, always be sure to include both theversion of Appium Desktop and the version of the Appium Server which is in use(see below).

If you're on macOS, you will need to install Appium Desktop apps by copying the appfrom the downloaded DMG file to your own file system (the best place is the'Applications' folder). Running Appium from in side the attached DMG itself isnot supported, and will not work.

Known Issues

  • Some Windows 10 Users experience a PathTooLongException when installing the EXE. The workaround for this is to update the setting on Windows to enable long paths

Usage Instructions

These instructions assume you are already familiar with Appium and Appium-related concepts. If youare new to Appium, please visit and read our introductory material.They also assume that you have downloaded both the Server GUI and the Inspector apps.

This app provides a convenient way to download and run the Appium automationserver, as well as a tool for inspecting elements in Chrome/Safari browser and your Android or iOS application. Itsvarious capabilities are described in the following sections.

The Appium Desktop Server GUI

Starting a simple server

When you open Appium Desktop, you are greeted with the server start window. Thebasic option is to start an Appium server with all its defaults and the abilityto modify the host and port. The start button will also let you know whichversion of the Appium server you are running, which can be useful whenreporting issues to the Appium team.

Starting a server with advanced options

By clicking on the 'Advanced' tab, you have the ability to set all the serverflags that are available in Appium. This is for advanced users and should onlybe modified after consulting the Appium documentation.

Server presets

If you use the advanced server options, you have the ability to savea configuration for later use. Simply save the preset on the 'Advanced' tab,and you will subsequently be able to recall and start the server with thatconfiguration from the 'Preset' tab.

The server console output window

Once you start the server, it will launch on the host and port you specified,and open a new window displaying the server log output.

This is fairly straightforward and no real interaction is possible, beyondusing the button to stop the server. You can also copy-and-paste the logs fromthis window which is useful in reporting Appium issues.

The Appium Desktop Inspector

The Inspector opens up with a New Session windows. This New Session window allows you to constructa set of Appium desired capabilities used to launch an Appium session. You can launch a sessionagainst the currently-running Appium CLI or Appium Server GUI server, or you can launch a sessionagainst a variety of other endpoints. Simply include the connection details for any server that youwish to connect to.

IMPORTANT: to ensure that the Inspector can talk to your Appium server, any Appium server youconnect to from the Inspector may need to be started with the --allow-cors flag, so thatChrome/Electron's content security policies don't prevent the Inspector from making requests to theserver (which may be running on a different host and port). If you get immediate errors whentalking to your Appium server, ensure that this setting is configured on your server.

You can add available cloud providers as new tabs.When you select Select Cloud Providers tab on the view,Select Cloud Providers dialog appears.You can select some of them and click Done, they will appear onthe New session window as tabs.

Appium Endpoints

These are the options for launching a session against a non-local Appium server:

Automatic serverAutomatically utilizes the currently-running Appium server
Custom ServerLaunch a session on an Appium server running on another machine over the network
Sauce LabsLaunch a session on the Sauce Labs cloud. Documentation
TestObjectLaunch a session on the TestObject cloud. Documentation
HeadspinLaunch a session on the Headspin cloud. Documentation
BrowserStackLaunch a session on the Browserstack cloud. Documentation
BitbarLaunch a session on the Bitbar cloud. Documentation
KobitonLaunch a session on the Kobiton cloud. Documentation
PerfectoLaunch a session on the Perfecto cloud. Documentation
PcloudyLaunch a session on the Pcloudy cloud. Documentation
TestingBotLaunch a session on the TestingBot cloud. Documentation
ExperitestLaunch a session on the Experitest cloud. Documentation

It should be straightforward to get set up with any of these options. Simplyenter your details in the input fields provided.

Desired Capabilities

Desired capabilities are how you configure your Appium session. They tell theAppium server what kind of platform and app you want to automate. If you areunfamiliar with the concept of desired capabilities, or which desiredcapabilities are required to launch Appium sessions of various types, youshould consult the Appium documentation. Additionally, if you're using one ofthe cloud providers, consult their documentation for possible vendor-specificdetails.

Appium Desktop does not restrict your creation of desired capabilities in anyway, nor will it validate them for you. It simply provides a nice UI forentering them in, and saving them for later use. Under the 'DesiredCapabilities' tab, you can use the form fields and '+' button to enter as manydesired capabilities as you need. You will also see a representation of theresulting JSON, which is what is actually sent to the Appium server. This canbe useful for verifying your capabilities, or for copy-and-pasting whenreporting issues.

Once you have set your desired capabilities, you might wish to save them so youcan run the same type of session later. Simply click the 'Save As..' button togive your capability set a name. You can then access it under the 'SavedCapability Sets' tab, for later editing or session launching.

Once your server type and capabilities are set, click 'Start Session' to launchthe Appium Desktop Inspector.

Attach to an Existing Session

If you click on the 'Attach to Session..' tab, you can select an existingsession from a list of currently running sessions on your selected server, or youcan input a session ID of a currently-running session. That session should berunning on the server details you specified in the server type section above.Attaching to an existing session is possible because the Inspector is just anAppium client. This could be useful if you want to debug the middle of a runningtest. When you quit the Inspector window of an existing session, Appium Desktopwill not quit the session as it does normally.

The Inspector

The Inspector is a visual representation of the state of your application alongwith the ability to perform certain interactions in your application throughAppium.

Appium sessions can take some time to load, especially on cloud services, soplease be patient. When the session loads, a screenshot of your app will appearon the left. You can mouse over various UI elements in your application, andsee them highlighted.

In the middle of the Inspector window is your app's hierarchy, represented asXML. You can navigate this tree by clicking through it, or by clicking onelements in the screenshot view. They will then be highlighted.

When an element is highlighted, its information will appear in the detail viewon the right side of the Inspector. This detail view consists of potentialactions to take against the element, and a table of the element's properties.These properties are valuable in determining how the element might accessedusing a particular Appium locator strategy. With an element selected, you canalso 'Tap' the element, or 'Send Keys' to the element (if it is a text field).

When you take such an action with an element, the Inspector will send thecommand to Appium, which will execute it. If the action is successful, a newscreenshot will be generated and you should see the updated state and XML ofyour app. If it's not successful, you'll have an opportunity to see the errormessage.

The top of the Inspector window contains a small toolbar with iconsrepresenting the ability to take certain actions in the Inspector:

  • Back (call driver.back)
  • Refresh (refresh the source and screenshot)
  • Start Recording (open the recorder, see the next section for more information on the recorder)
  • Quit the session (call driver.quit and close the Inspector)
Appium desktop inspector android

The inspector for Hybrid or Web apps

Appium Desktop can also inspect the Webview of your Hybrid app or inspect elements in the Chrome of Safari browser.It will automatically determine for Android or iOS if a webview is detected and will notify you about this in the right part of the screen.

A select box of all found contexts will be shown and after selecting a context the source will be updated and show the source.The below screenshot shows the HTML source of the Appium Desktop documentation website



As of Appium Desktop version 1.18.0 it will automatically enable showing the HTML-source if a Chrome or Safari session is started.

More selector options

XML is not a native programming language for iOS as it is with Android. Appium will automatically translate the iOS-UIHierarchy into XML, but this is a time-consuming process.The XML will be used to provide a XPATH that can be used to find elements. When you use that XPATH selector with iOS during automation, Appium always needs to do the translation which will slow down the test execution (for more info see Appium Pro newsletter 8).

As of Appium Desktop version 1.18.0 it will, if possible, also provide the:

selector options together with a Get Timing button.


When you select an iOS element in Appium Desktop and press the Get Timing-button it will provide you the time in millisecondsit will take per selector to find the element and will automatically sort them from fast to the slowest.In most cases you will see that XPATH is the slowest locator strategy in comparison to the other options.


The Recorder

Appium Desktop comes with a very basic action recorder, that watches foractions taken using Appium Desktop and displays language-and-framework-specificcode that represents those actions. The code can then be copied-and-pasted intothe appropriate Appium client code and used for tests.

NB: the goal of the Recorder is not to produce production-ready test code.It is designed as a tool to help explore the Appium API, and demonstrate howcertain automation behaviors correspond to method calls in a particularlanguage and Appium library. In sum, it is a learning tool, not a robust codegeneration feature, and should be used as such.

When you start recording, the Inspector will show an additional window:

At first, the Recorder will show no code. You will first have to take someaction, like finding an element in the hierarchy and tapping on it, or sendingkeystrokes to it. When you do this, code will appear in the recorder window,corresponding to the particular language and framework you have chosen (whichcan be adjusted in the drop-down menu at the top right of the Recorder):

This code can be copied to your clipboard using the appropriate button at thetop right of the Recorder pane. Note that by default what is shown are simplylines of code corresponding to the specific actions you have taken whilerecording---in general you cannot paste these lines into an empty text file andrun the code. To run Appium test scripts in code requires that variousdependencies (like the Appium client libraries) be installed, and that scriptboilerplate (like instantiating a driver and initializing a session) bepresent. To show this additional code, you can click the 'Show Boilerplate'button. With boilerplate code shown, it is possible to copy and paste the codeinto a new file and run it.

The power of the Recorder will continue to grow as we add more languages,frameworks, and actions to Appium Desktop.


This is everything you need to know to use Appium Desktop successfully!Remember, Appium Desktop is not a replacement for understanding Appiumitself---it is simply a convenient tool for working with Appium on yourdesktop, and an Inspector for exploring your app. Have fun!

Reporting Issues and Requesting Features

Appium Desktop is open source, and we use GitHub for issue tracking. Pleasesimply report issues at our issuetracker. We will endeavor todetermine whether the issue you are reporting is related to Appium Desktop orAppium Server. If it's not related to Appium Desktop specifically, we willclose the issue and ask you to open a general Appium issue at Appium's mainissue tracker. Please, saveyourselves and us valuable time by getting clear on whether the issue you'reexperiencing is related to Appium Desktop specifically or instead is a generalAppium issue. You can do this by seeing whether the issue reproduces with theAppium command line server as well. If it does, direct your report to Appium'sissue tracker.

Have a feature request? Follow the same process and submit an issue to theappropriate tracker! (Either here in this repo if the request is specificallyfor Appium Desktop, or Appium's main tracker if the request is for Appium moregenerally.)

Advanced Topics and Troubleshooting

Connect to local Appium server

Appium Desktop has own Appium CLI. You can launch it via Starting a simple server.But sometimes you need another Appium version which is bundled in the desktop.For example, when you want to use Appium beta.

Winium Desktop Inspector

Then, please follow below steps.

  1. Build Appium CLI environment: Getting Started
  2. Launch the Appium
    • $ appium
  3. Launch Appium Desktop and open The New Session window
  4. Connect to the running Appium server as Custom Server as below (by default)
    • Remote Host: localhost
    • Remote Port: 4723
    • Remote Path: /wd/hub
  5. Start session

Appium can't detect environment variables on Mac

Appium uses environment variables like ANDROID_HOME as well as relying onvarious binaries in your PATH and so on. When running from the command linein an environment where you have set these variables appropriately, Appium hasno problem in picking them up. However, Appium Desktop does not run in a shellor a command-line environment, and so by default it does not have access toenvironment variables you have set in your shell startup script or profile. Towork around this, we use theshell-env package to pick upenvironment variables defined in your shell. This package only looks in certaincommon init scripts, however, like ~/.bashrc, ~/.bash_profile, and~/.zshrc. If you set your Appium environment variables in some other way, youwill need to create one of these default init scripts and set your environmentvariables there as well, so that Appium Desktop will successfully pick them up.

Desktop Inspector

Warnings about being on a read-only file system

This probably means you tried to launch Appium Desktop from the downloaded diskimage (.dmg file). This is not a supported mode of running Appium Desktop. Tocorrectly install Appium Desktop, copy the application from the disk image toyour local filesystem, to somewhere like /Applications. Then, run the appfrom that new location.

Cannot open Appium Desktop

It is because of macOS security system.Please read issue#1217 for more details. Radio silence.

Appium Desktop Inspector

Developer Instructions

Want to hack on Appium Desktop? Awesome! Head on over to our ContributingDoc for information on how to get a dev environment set upand submit changes back to the project.