Convert Appium (mobile WebDriver) tests to and from Eggplant (SenseTalk mobile/SUT), OpenTest.AI, Testers.AI Recorder, Testers.AI Dynamic, Espresso (Android), and XCUITest (iOS). Handles Appium Java (JUnit/TestNG), Python (pytest/unittest), JavaScript/TypeScript (Mocha/WebdriverIO), C#, and Ruby; iOS, Android, Windows, Flutter, and cross-platform driver configurations. Use whenever the user wants to migrate an Appium suite, translate a single Appium script, or round-trip Appium through another framework. MANDATORY TRIGGERS — "convert Appium", "Appium to Espresso", "Appium to XCUITest", "Appium to Eggplant", "migrate mobile tests", "translate appium test", "port Appium", "Appium → OpenTest.AI", "Appium to Testers.AI", or any mention of Appium alongside any of the supported targets.
インストール
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Convert Appium (mobile WebDriver) tests to and from Eggplant (SenseTalk mobile/SUT), OpenTest.AI, Testers.AI Recorder, Testers.AI Dynamic, Espresso (Android), and XCUITest (iOS). Handles Appium Java (JUnit/TestNG), Python (pytest/unittest), JavaScript/TypeScript (Mocha/WebdriverIO), C#, and Ruby; iOS, Android, Windows, Flutter, and cross-platform driver configurations. Use whenever the user wants to migrate an Appium suite, translate a single Appium script, or round-trip Appium through another framework. MANDATORY TRIGGERS — "convert Appium", "Appium to Espresso", "Appium to XCUITest", "Appium to Eggplant", "migrate mobile tests", "translate appium test", "port Appium", "Appium → OpenTest.AI", "Appium to Testers.AI", or any mention of Appium alongside any of the supported targets.
Converts tests from Appium to any supported target, and to Appium from another framework. Defers orchestration, target semantics, and cross-framework rules to the open-testing-convert master skill.
When to use
Trigger when:
The user references an Appium codebase, mobile test file, or snippet and asks to migrate or translate it.
The user asks to convert to Appium from a native mobile framework (Espresso, XCUITest), a recording (Testers.AI Recorder), or a natural-language format.
The user uploads a file containing AppiumDriver, IOSDriver, AndroidDriver, UiAutomator2Options, XCUITestOptions, MobileBy, AppiumBy, desired_capabilities, MobileElement, TouchAction, or a capabilities.json / appium.yml.
Any reference to io.appium.java_client, appium-python-client, webdriverio configured against Appium, OpenQA.Selenium.Appium, or appium_lib (Ruby).
How to use
Read the master orchestrator first. Open ../open-testing-convert/SKILL.md and follow its step order (detect source → detect target → resolve language → delegate to this skill → read target primer → validate output).
Confirm target and language. The master's language-policy.md governs language choice (default: preserve source language unless the user requests otherwise). For Appium the source language is one of Java, Python, JavaScript/TypeScript, C#, or Ruby.
For Espresso reverse: Espresso-specific target notes live in this skill's mappings.md.
For XCUITest reverse: XCUITest-specific target notes live in this skill's mappings.md.
Read this skill's reference files:
reference/source-profile.md — what Appium tests look like across platforms and languages.
reference/extraction.md — how to extract canonical test intent from Appium code.
reference/mappings.md — per-target translation tables and worked examples.
Read shared references as needed:open-testing-convert/reference/shared/{locator-mapping,wait-strategies,assertion-mapping,lifecycle-mapping}.md.
Emit the converted test(s) according to the target primer's Emission Checklist. Produce a preamble summarising: source file, detected language/platform, target, language choice, any TODOs.
Scope
Appium 1.x (legacy JSONWP) and 2.x (W3C). Note version in preamble when relevant (MobileBy → AppiumBy in 2.x).
Platforms: iOS, Android, Windows (WinAppDriver), Mac, Flutter (via appium-flutter-driver), and mobile browser testing (Safari iOS, Chrome Android) which is a degenerate case of web Selenium.
Page Object Model mobile pages — flatten inline during extraction.
WebdriverIO-based Appium suites — recognise as Appium and treat the WDIO-specific commands alongside.
Out of scope (delegate to sibling skills)
Mobile-browser-only WebDriver tests (desktop Selenium-equivalent on mobile) — use open-testing-convert-selenium and flag the mobile browser cap.
Pure Espresso / XCUITest source — those have their own per-source skills (open-testing-convert-espresso, open-testing-convert-xcuitest) in the Task #8 expansion.
Detox (React Native) — use open-testing-convert-detox in Task #8.
Flutter test framework (Dart flutter_test) — use open-testing-convert-flutter in Task #8. (Appium's flutter-driver integration IS in scope.)
Cucumber-JVM driving Appium — use open-testing-convert-cucumber, which invokes this skill for the step-implementation layer.
Quick reference: Appium verbs and their canonical conversions