简体   繁体   中英

How can I get IDs, names or x paths for ui elements used in a mobile app (Android/iOS) for mobile automation testing?

我想知道如何获得在appium,monkey-talk,xamarian等移动自动化测试中使用的移动应用程序中使用的UI元素的ID或名称。

What I explain is for my system (Windows 7), but my explanations should be easily translateable to other systems too.

Prerequisites :

  • When you want to do Android automation testing you should always install Android SDK, so I assume that you have already done so. Lets call the path to the sdk folder <ANDROID_HOME> (including the sdk folder itself)
  • Run <ANDROID_HOME>/SDK Manager.exe . Select the latest Android SDK Tools and Android SDK Platform-tools and install them
  • Connect a device you want to test on:
    • Either run an emulator - it is automatically connected in your system
    • Or connect a physical device and install the proper USB drivers. You cna verify the device is connected with running the command <ANDROID_HOME/platform-tools/adb.exe devices - if there is at least one device in the list you are good to go.

Once you have all that:

Run <ANDROID_HOME>/tools/uiautomatorviewer.bat . this will open a screen that allows you to take screenshots of the conencted device. See below image:

在此输入图像描述

The screenshot is taken via clicking the button under the purple rectangle, whcih I added artificially. The red one is added by the tool, because I hover the element of interest. You can observe the elements properties on the right. These are usually the properties you would use for testing native application.

If you want to test elements that are loaded in WebView then it would be better if you use Chrome remote debugging for obtaining the correct selectors.


Footnote:

As I see you are making the very first steps in mobile automation testing, which is an area I am pretty interested into, may I suggest you take a look at the ATMOSPHERE Android test automation framework. Disclaimer : I am one of its creators. Still - it is freely available and open sourced. We also beleive it provides capabilities not supported in other frameworks and is easy to start with so I hope it will be useful for you!

C#

In my case this piece of code resolved my issue:

    private IApp _app = ScenarioContext.Current.Get<IApp>("Application");

    private readonly ILoginScreen _loginScreen;
    private readonly IMainMenuScreen _mainMenuScreen;

    public Login(ILoginScreen loginScreen, IMainMenuScreen mainMenuScreen)
    {
        _app.Repl();
        _loginScreen = loginScreen;
        _mainMenuScreen = mainMenuScreen;
    }

I'm using Gherkin language using Xamarin in which Repl() command opens a new cmd in which you can type the tree command and get the tree structure of ui elements on the specific screen you are. This is shown in the image below:

Xamarin UI测试

Steps 1: Launch the appium inspector by clicking the inspector button:

在此输入图像描述

Step 2: Set the APK / IPA file path (application file path) as shown below:

在此输入图像描述

Step 3 : Click on Start Session, now you will be navigated to Recorder window:

在此输入图像描述

Click the application UI and perform required action “Selected Element” Tab ie, Tap, SendKeys for entering the text etc.

Selected UI Elements will get exported to Recorder tab after recording the UI Elements of all the elements we can export the Java file.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM