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