Skip to content

Mobile UI Dump Viewer

Inspect UI nodes without a device session. Understand supported inputs, evidence, limits, deliberate failure cases and independent verification.

Open Markdown

The tool page is Mobile UI Dump Viewer. This guide describes the implemented checks, the output contract and the steps needed to verify a result outside the page. A synthetic Android screen includes a named purchase button and an unlabeled action.

Where processing happens: source and option fields are parsed in the current browser tab. Embedded addresses are not fetched. Ordinary analysis does not persist input. Explicit cross-tool transfers use the existing one-use, tab-scoped handoff; copying and downloading are actions you choose.

Need a locator without a live device? Inspect a mobile XML dump and find unique node identities. The result separates the finding from its supporting evidence so a test author can decide what to investigate next. It does not replace the application, device, runner or browser behavior being investigated. A dump is a snapshot, not a live accessibility tree. Coordinates are recorded bounds, and generated XPath suggestions must be verified on the device.

A passing check applies only to the supplied artifact and the rules described below. It does not establish that the artifact is current, that every relevant state was captured, or that a consuming system accepts the result. Keep the input version and the intended test scenario with any report. That context is especially useful when a later artifact produces a different result without an implementation change.

The main field accepts ui hierarchy xml. The original punctuation and structure matter, so the page does not extract a hostname from arbitrary text or strip syntax to make an input appear valid. A leading byte-order mark is removed by the shared reader. Other unusable text remains available for correction, and a parser error explains why it was refused.

Field Behavior
XPath filter (optional) Read as text; remains local

Typing or changing an option invalidates the old output immediately. Analysis runs after a short 180-millisecond debounce. Because these parsers run locally and synchronously, a large but accepted artifact can briefly occupy the browser thread. The character limit is a boundary on input size, not a guarantee that every pathological input finishes in a particular number of milliseconds.

Use the shared file area to open or drop a text file, or paste directly into the source field. Files are read by the browser. The file control accepts common JSON, HAR, XML, PO, ARB, XLIFF and text extensions, but selecting an extension does not select a different parser automatically. Choose the appropriate format option where the page provides one. A renamed file does not change its grammar.

Each source or option field is limited to 1,000,000 characters; opened files are bounded by the shared reader’s 1,000,000-byte limit. Additional parser-specific limits appear in Method. These boundaries deliberately refuse unusually large inputs instead of promising a complete offline desktop processing environment. Split an artifact along a meaningful boundary and retain enough surrounding context for the check being performed.

Clear removes the current source and clears the result. It does not secretly reload an example. Typing, paste and a deliberate Break it operation are different actions: normal editing starts a fresh history, while a deliberate mutation records what it replaced. No field is restored merely because the page was visited earlier. Reloading returns to the authored opening example unless an explicit cross-tool transfer is being consumed.

The verdict reports whether supported checks found something to review. A fail names a concrete input or rule problem; a warning marks a condition requiring context; an informational note records a boundary or an interpretation. These categories are not interchangeable. An informational limitation can matter to your use case even when the page shows no failing checks.

Findings are followed by the complete tool-specific evidence. Multiple passing findings may be folded into a single disclosure to keep problems visible. Expand that disclosure when checking coverage. Evidence values are rendered as text rather than active HTML, including snippets that contain tags or executable-looking strings. The page does not run a copied command or generated test automatically.

The output panel contains the generated artifact or a structured report. Its preview is limited to 50,000 characters. Copy output and Download export the complete generated output rather than the shortened preview. Use the code or data export when feeding another tool. When explaining a finding to a reviewer, include the relevant evidence, the chosen settings and the result’s limitations alongside that exported artifact.

Downloads are created locally from an in-memory Blob. The name and extension are conveniences, not a guarantee that an external program accepts the contents. Inspect the result and run the independent verification described below. Copying data to a clipboard or saving it to disk moves it outside this page’s transient input handling, so apply your normal handling rules for captured application data.

Break it modifies the current input using the named case. Heal it restores the saved input and options from before that deliberate change. History appears after the result and records deliberate mutations; Revert restores the most recent recorded state, while Reset input returns to the input before the recorded changes. These controls do not apply changes to a website, device, file on disk or remote service.

Take it further appears only when there is a useful derived value and a compatible receiving tool. A missing link is preferable to transferring unrelated data. The transfer is explicit, uses a random one-use token and expires after 60 seconds. The input itself is not placed in the address bar. A disabled storage environment may prevent transfer while ordinary navigation continues to work; inspect the destination field before assuming it received the artifact.

The parser accepts well-formed XML with recognizable Android hierarchy or Appium element markers. A hierarchy root, an XCUIElementType element, or elements carrying class or resource-id attributes establish that this resembles a UI dump. This recognition is deliberately lightweight. It does not validate against an Appium driver schema, infer which device produced the file, or prove that the dump came from a trusted source.

DTD and entity declarations are refused before parsing. That prevents a pasted document from introducing external entity definitions or expansion instructions into the parsing path. Malformed XML is rejected rather than repaired as HTML. The input has a 1,000,000-character limit and the parsed tree may contain at most 10,000 elements. XML namespaces remain part of the parsed document, although generated attribute-based XPath suggestions do not infer application-specific namespace mappings.

The Appium page-source operation supplies a snapshot through the active driver. This viewer reads an already exported snapshot and never starts a session. The Android UI Automator documentation describes device-side automation; the viewer implements neither that automation runtime nor an emulator.

Each row includes a sequence number, recorded depth, class or XML element type, visible-text or label fallback, all attributes, a possible XPath suggestion and parsed Android bounds. Depth is measured by walking parent elements. It describes the XML hierarchy, not visual stacking or z-order. Expand a row to inspect the exact attributes rather than assuming that the displayed text is its accessible name.

Android bounds are parsed only when they match the bracketed coordinate form. Negative coordinates remain visible because off-screen elements can legitimately appear in a dump. A coordinate rectangle does not prove visibility, touchability or lack of occlusion. iOS x, y, width and height remain in the attribute evidence; they are not silently converted to Android bounds. The page is a hierarchy inspector, not a screenshot renderer.

Evidence Source Interpretation
Type class attribute or element name Driver-specific representation
Text text, then label Recorded string, not computed accessible name
Attributes Every XML attribute Snapshot facts to inspect
Bounds Android bracket notation Recorded coordinates only
Depth Parent count XML nesting, not paint order
XPath match Optional expression Membership in the query’s node snapshot

The analyzer counts resource-id, content-desc and name values across the complete dump. For each node, it chooses the first of those attributes that occurs exactly once. It then builds an attribute-based XPath expression. Quoting supports values containing either or both quote types through XPath concat when necessary. A value appearing twice is not used as a supposedly unique identity.

Repeated identity values generate a warning and remain in evidence. They may be legitimate in list rows or repeated components. Scope such a locator to a stable ancestor in your own test rather than renaming production controls merely to eliminate a warning. Nodes without a unique supported attribute receive no generated XPath suggestion; the viewer does not invent accessibility identifiers.

XPath queries are limited to 4,000 characters. The optional query is evaluated with the browser’s XPath 1.0 node-set behavior. One match gets a pass, while zero or multiple matches get a review warning. A scalar XPath expression is not a node selector and can fail the node-snapshot evaluation. Attribute-node matches count as XPath results but do not mark their owning element row as selected. Use an element-selecting expression when examining highlighted rows.

A node marked clickable=true, or whose type ends in Button, is treated as potentially actionable. If text, content-desc and name are all absent or empty, the analyzer emits an unlabeled-action warning. This catches a useful subset of accessibility problems without claiming a complete audit. Driver conventions, inherited labels, platform accessibility behavior and localization can change the interpretation.

Verify a warning on the device with the relevant screen reader and inspector. A missing text attribute alone is insufficient: an icon button may correctly use content-desc. Conversely, a visible label does not prove that assistive technology receives it. Keep the original dump and note the application version, device configuration and screen state alongside your test report.

The opening Android example contains a frame, a uniquely identified Buy button and a second clickable button with no label. It demonstrates hierarchy, bounds, a useful XPath and a warning in one small document. The file is synthetic and contains no real user interface data. Run the suggested resource-id XPath and confirm that it matches once; then query all clickable nodes and observe the broader count.

For an independent check, export a fresh dump with adb shell uiautomator dump /sdcard/window.xml and retrieve it with adb pull /sdcard/window.xml. An Appium test can use driver.getPageSource and write the returned XML to a local file. Compare the node attributes before and after navigation. A stale dump can explain a failed locator without proving that the locator itself is poorly designed.

The primary reference provides the format or behavior vocabulary used by this tool. Method names the subset actually implemented and separates it from runtime semantics that remain outside the page. Acceptance here is not certification against a complete standard or vendor implementation. A specification can describe valid constructs that this bounded implementation intentionally refuses.

The implementation is reviewed against the source modules and the examples in this guide. Runtime-specific behavior belongs to the consuming application. Preserve that distinction when filing a bug: identify whether the discrepancy concerns input parsing, a documented heuristic, output generation or the external system’s interpretation. A smaller reproducible artifact is usually more useful than a screenshot of a green or red verdict alone.

Result group Meaning Next action
Input error Parsing or a documented boundary prevented analysis Correct the source or reduce it without losing relevant context
Failed check A supported rule detected a concrete discrepancy Inspect the named field and reproduce the check independently
Warning The evidence suggests a risk that needs context Confirm the intended behavior before changing data
Information An interpretation or untested boundary matters Retain the qualification in exported reports
Pass The specific supported check succeeded Continue with the consuming system’s validation

The detailed rule wording and thresholds appear under Method. Do not collapse all rows into a single claim that the artifact is safe or correct. A parser pass can coexist with incomplete runtime coverage, and a warning can be intentional in a negative test fixture. Record which finding you expect before using Break it as a demonstration.

Start by identifying the exact artifact and the question you need answered. Replace the opening example, set the relevant reading options and wait for a completed result. Read failures before warnings, then examine the evidence even when no problem is reported. Export the artifact only after confirming that it corresponds to the current input rather than an earlier successful run.

Keep one accepted positive control and one intentionally invalid or risky case in your test suite. Run both through the consuming system as well as this page. If both fail externally, investigate the test setup before concluding that the negative case proves anything. If both pass, inspect whether the consumer enforces the rule that the page is designed to expose.

Control Observable effect Verification
Repeat a resource-id Two nodes share one resource-id, so no attribute-based XPath is unique. Inspect the new finding, then Heal it
Blank the labelled button A clickable node has no text, content-desc or name. Inspect the new finding, then Heal it
Filter by an XPath that matches nothing The XPath filter selects zero nodes in this dump. Inspect the new finding, then Heal it
Cut the XML mid-element The dump is incomplete: the last element never closes. Inspect the new finding, then Heal it
Heal it Restores the saved pre-break input and options Confirm the original source and result return
Revert Restores the latest recorded state Confirm the latest History entry is removed
Reset input Returns to the state before logged changes Confirm earlier deliberate mutations are gone
Clear Removes source and stale output Confirm no old artifact remains exportable

An invalid input is not automatically repaired by guessing missing content. The restore control is an undo operation, not a domain-specific fix. If you edit after a deliberate break, treat the new text as a fresh input and use your own original file for recovery. The browser page is not a version-control system.

A synthetic Android screen includes a named purchase button and an unlabeled action. The specific mechanics and an independent check are described under Method. Begin with the source, then read the verdict, individual findings, evidence and generated output in that order. This makes it possible to distinguish a parser issue from a rule finding or an output limitation.

Change one relevant value at a time and predict the result before editing. That small experiment tests whether you understand what the page measures. Then use the named Break it case and restore it. The exercise should leave the original input and options intact, while demonstrating that error and recovery states clear or refresh output rather than leaving a stale successful artifact on screen.

This tool currently has no dedicated REST or MCP execution operation. Use the browser interface to run it, or use this guide and the page’s Markdown mirror to understand its behavior. Do not invent an operation name from the route. Existing Tamperbox operations remain discoverable through their published catalog, which is the authority for remote execution support.

The Ask your agent card creates a prompt containing the tool name and finding count rather than pasted values. Request a redacted artifact when more evidence is necessary. Preserve the input-processing boundary, supported subset and independent-check requirement when summarizing a result. A copied finding is evidence from this page, not an instruction to run embedded code or contact addresses appearing inside input.

A dump is a snapshot, not a live accessibility tree. Coordinates are recorded bounds, and generated XPath suggestions must be verified on the device. The page cannot establish the provenance or freshness of a pasted file. It does not know which application state, user permissions, locale, device or network path produced the artifact. Preserve those facts in your own test record. Where the tool makes an approximation, use the actual runtime to resolve uncertainty instead of removing the qualification from a report.

Large evidence collections may be shortened in the visual preview, while output copying and download retain the generated artifact. Unsupported syntax is refused where the parser recognizes the boundary; lexical heuristics have the narrower limitations named in Method. Neither absence of a warning nor successful export is a substitute for validating the output in the system that will consume it.