[VegaOS] UIAutomator returns random View IDs instead of assigned Test IDs in Kepler app

Hi everyone,

To perform automation on the Kepler app, we are using the Kepler automation driver (JSON‑RPC) through Appium. Below are the capabilities used:

{

“platformName”: “Kepler”,

“appium:automationName”: “automation-toolkit/JSON-RPC”,

“kepler:device”: “vda://{{device_id}}”

}

Issue: Appium Inspector returns random View IDs and highlights hidden UI elements

While identifying elements, Appium Inspector always returns random/dynamic test_id, even though the development team confirmed that views have been assigned stable Test IDs in this format:

Plain Text

<PackageName>{test_id}

Additionally, Appium Inspector highlights hidden/non-visible UI elements instead of the visible element on the screen. This makes element identification unreliable.


Environment

  • App: Kepler

  • Automation Tool: Appium Inspector using Kepler automation driver (JSON‑RPC)

  • Platform: Vega OS

  • Build: Latest internal build


Description

During UI automation inspection:

  • Returned test_id do not match the assigned Test IDs.

  • IDs appear random and change between sessions and builds.

  • Appium Inspector often hovers over invisible UI elements instead of the visible ones.

This leads to inconsistent or incorrect element identification.


Steps to Reproduce

  1. Launch the Kepler app.

  2. Navigate to any screen with assigned Test IDs.

  3. Open Appium Inspector and inspect visible UI elements.

  4. Observe the returned test_id and highlighted element.


Expected Result

  • The automation driver should return the assigned Test ID:
<PackageName>{test_id}
  • Appium Inspector should highlight the actual visible UI element being inspected.

Actual Result

  • View IDs are random/dynamic, not the assigned Test IDs.

  • Appium Inspector highlights hidden elements instead of the visible ones.


Impact

  • Automation scripts fail across runs due to unstable IDs.

  • Element inspection is inaccurate, blocking reliable automation.

Note: Steps are followed as per developer doc link https://developer.amazon.com/docs/vega/0.22/appium-inspector.html

Hi @Ajay_Mehta,

Thank you for your detailed question about the UIAutomator returning random View IDs instead of assigned Test IDs in the Kepler app.

Our team is looking into this issue and will provide an update as soon as we have more information. We appreciate you following the documentation at https://developer.amazon.com/docs/vega/0.22/appium-inspector.html and providing such comprehensive details about the environment, steps to reproduce, and the impact on your automation workflow.

Thanks for helping us improve the Vega platform.

Warm regards,
Aishwarya

Hi @Aishwarya

Thank you for the update and for acknowledging the issue with UIAutomator returning random View IDs instead of the assigned Test IDs in the Kepler app.

I appreciate the team taking the time to investigate this. Since this behavior blocks portions of our automation workflow, could you please share an estimated timeline for when we can expect the next update or resolution? Knowing this will help us plan our testing efforts accordingly.

Thanks again for your support and for continuing to improve the Vega platform. Looking forward to your response.

Best regards,
Shobha

Hi Ajay_Mehta!

Thanks for reaching out and reporting this issue. In order to isolate and reproduce efficiently this issue, can you kindly provide the following information from your testing environment?

  • SDK/OS version.

  • Appium Kepler Driver version.

  • Any screen capture from Appium Inspector displaying the described issue.

  • Testing device type.

  • Kepler version (if you’re using any reference sample app from the official docs)

  • Video capturer model (if testing with a physical device).

Thanks for your support on this!

Hi @Eduardo_Avendano ,

Please check and let us know if any other details are needed..

  1. SDK/OS version - Active SDK Version: 0.22.6006
    Vega CLI Version: 1.2.18
  2. Appium Kepler Driver version - kepler@3.30.0
  3. Any screen capture from Appium Inspector displaying the described issue. - Attached screenshot
  4. Testing device type - fire tv stick (Vega)
  5. Kepler version (if you’re using any reference sample app from the official docs) - NA
  6. Video capturer model (if testing with a physical device) - PiBox Inspire V3.0 (4K Input)

Hi Sindu and Ajay,

Thank you for your patience while we investigated the root cause of the issues you reported and identified possible fixes and workarounds.

Issue 1: Random IDs and Custom Attributes (View IDs)

We’ve confirmed that the Appium Kepler Driver and its integration with Appium Inspector currently do not support custom attributes such as View IDs. The random IDs displayed in your screenshot are expected behavior, as these are generated dynamically and are outside our team’s control to make static. We’re evaluating whether this can be added as a feature in the future, but unfortunately, it’s not supported at this time.

Regarding any discrepancies between your assigned test_id attributes and what appears in the Inspector, we’d like to investigate further. To help us identify the root cause, could you please verify the following:

  1. Confirm adherence to guidelines: Ensure your application follows the official Vega documentation.

  2. Verify test_id presence: Check whether the test_id assigned to your elements is actually present in the App Source tree. You can use the search feature (magnifying glass icon at the top center) with an XPath query like: //*[@test_id='element_test_id_value']. Many customers have found that the attribute appears on a parent or child element rather than the expected one.

  3. Share code snippet: Provide a sample from your app’s source code showing how the test_id attribute is assigned.

  4. Share Inspector screenshot: Include a screenshot showing how the test_id attribute value appears in Appium Inspector.

Issue 2: Hidden Elements Being Highlighted

This is a known issue, and our team is actively working on a fix. In the meantime, we recommend using the Vega Virtual Device instead of a physical device as a workaround. This should allow you to inspect your application more accurately and generate your test scripts.

Please let us know if you have any questions or need further assistance!