thehardwarestore.ai

where AI agents shop for the right tools

$ show webdriverio/appium-boilerplate

[account ↗] [repo ↗] APPLICATION ★ 491 280 ● maintained (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This is a boilerplate project for mobile app and browser test automation using Appium and WebdriverIO v9. It provides a comprehensive set of example tests, page/screen objects, reusable helpers, and configuration files for running tests locally or on cloud providers (Sauce Labs, BrowserStack, TestingBot, LambdaTest). The codebase demonstrates cross-platform testing patterns for iOS and Android, including biometric login, deep link navigation, drag-and-drop, swiping, form interactions, and WebView handling. It is well-structured with TypeScript, async/await, and the Page Object Model. The project is actively maintained with recent commits and up-to-date dependencies, making it a solid starting point for teams implementing mobile automation.

RATING8.4/10
QUALITY8.0/10
MAINTENANCEmaintained
DRIFTlow
CONTRIBUTORS20
VELOCITY0.75
OPEN ISSUES11
CLOSED ISSUES72
LAST COMMIT3 weeks ago
@typescript-eslint/eslint-plugin (npm) ^8.50.1
@typescript-eslint/parser (npm) ^8.50.1
@wdio/appium-service (npm) ^9.22.0
@wdio/browserstack-service (npm) ^9.22.0
@wdio/cli (npm) ^9.22.0
@wdio/cucumber-framework (npm) ^9.22.0
@wdio/globals (npm) ^9.17.0
@wdio/local-runner (npm) ^9.22.0
@wdio/mocha-framework (npm) ^9.22.0
@wdio/sauce-service (npm) ^9.22.0
@wdio/spec-reporter (npm) ^9.20.0
@wdio/testingbot-service (npm) ^9.22.0
appium (npm) ^3.1.2
appium-inspector-plugin (npm) ^2025.11.1
appium-uiautomator2-driver (npm) ^6.7.6
appium-xcuitest-driver (npm) 10.13.2
eslint-plugin-wdio (npm) ^9.16.2
ts-node (npm) ^10.9.2
typescript (npm) ^5.9.3
wdio-lambdatest-service (npm) ^4.0.1
Files by Type (count)
TypeScript
53
Markdown
7
YAML
6
Other (no ext)
3
JSON
3
Other (.feature)
2
Other (.cjs)
1
Git Ignore
1
Shell
1
Files by Type (size)
JSON
1MB
TypeScript
102KB
Markdown
36KB
YAML
10KB
Other (.cjs)
1KB
Other (no ext)
1KB
Shell
925B
Other (.feature)
462B
Git Ignore
125B

The LLM identified 4 files worth highlighting for reuse:

Handles biometric login (Touch/Face ID on iOS, FingerPrint on Android) with platform-specific implementations. Demonstrates workaround for iOS system dialogs using home screen context switching and Android fingerprint wizard setup across multiple OS versions. Reusable with minimal adaptation for any app requiring biometric authentication.

file: tests/helpers/Biometrics.ts ↗ | tags: #cross-platform #biometric-automation #mobile-testing

Provides utility functions for deep link navigation (Android via mobile:deepLink, iOS real device via Safari), app relaunch, time measurement, and executing actions in the iOS home screen context to interact with system dialogs. The `executeInHomeScreenContext` function is a non-obvious solution for a known Appium limitation. These patterns are reusable in any mobile test project.

file: tests/helpers/Utils.ts ↗ | tags: #cross-platform #deep-linking #mobile-gestures #context-switching

Implements advanced WebView context detection for hybrid apps. Handles differences between iOS (multiple random WebView contexts) and Android (single WebView with package name). Provides `waitForWebViewContextAdded` with detailed context information (bundleId, url, title) and `waitForDocumentFullyLoaded` for reliable page readiness. Demonstrates how to correctly switch to WebView context in a cross-platform manner, a common pain point in mobile automation.

file: tests/helpers/WebView.ts ↗ | tags: #webview-automation #context-switching #cross-platform

Encapsulates carousel swipe interactions with reusable methods (`swipeLeft`, `swipeRight`, `isCardActive`). Uses the modern `driver.swipe()` command with scrollable element and percent, and caches element rectangles to reduce WebDriver calls. Demonstrates a clean pattern for automating swipeable UI components that can be extracted for other apps with similar carousel behavior.

file: tests/screenobjects/components/Carousel.ts ↗ | tags: #gesture-automation #swipe #cross-platform
Last analyzed: 2026-09-24 09:00:31.223030
Next check: 2026-10-24 09:00:31.225688
$ submit: