자주 묻는 질문
WebdriverIO MCP에 대한 자주 묻는 질문들입니다.
일반
MCP란 무엇인가요?
MCP(Model Context Protocol)는 Claude와 같은 AI 어시스턴트가 외부 도구 및 서비스와 상호작용할 수 있게 해주는 오픈 프로토콜입니다. WebdriverIO MCP는 이 프로토콜을 구현하여 Claude Desktop과 Claude Code에 브라우저 및 모바일 자동화 기능을 제공합니다.
WebdriverIO MCP로 무엇을 자동화할 수 있나요?
다음을 자동화할 수 있습니다:
- 데스크톱 브라우저(Chrome) - 탐색, 클릭, 입력, 스크린샷
- iOS 앱 - 시뮬레이터나 실제 기기에서
- Android 앱 - 에뮬레이터나 실제 기기에서
- 하이브리드 앱 - 네이티브와 웹 컨텍스트 간 전환
코드를 작성해야 하나요?
아니요! 이것이 MCP의 주요 이점입니다. 자연어로 원하는 작업을 설명하면 Claude가 적절한 도구를 사용하여 작업을 수행합니다.
예시 프롬프트:
- "Chrome을 열고 webdriver.io로 이동해줘"
- "Get Started 버튼을 클릭해줘"
- "현재 페이지의 스크린샷을 찍어줘"
- "iOS 앱을 실행하고 테스트 사용자로 로그인해줘"
설치 및 설정
WebdriverIO MCP를 어떻게 설치하나요?
별도로 설치할 필 요가 없습니다. MCP 서버는 Claude Desktop이나 Claude Code에서 구성할 때 npx를 통해 자동으로 실행됩니다.
Claude Desktop 설정에 다음을 추가하세요:
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}
Claude Desktop 설정 파일은 어디에 있나요?
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
브라우저 자동화에 Appium이 필요한가요?
아니요. 브라우저 자동화는 Chrome만 설치되어 있으면 됩니다. WebdriverIO가 ChromeDriver를 자동으로 처리합니다.
모바일 자동화에 Appium이 필요한가요?
네. 모바일 자동화에는 다음이 필요합니다:
- Appium 서버 실행 (
npm install -g appium && appium) - 플랫폼 드라이버 설치 (iOS의 경우
appium driver install xcuitest, Android의 경우appium driver install uiautomator2) - 적절한 개발 도구 (iOS의 경우 Xcode, Android의 경우 Android SDK)
브라우저 자동화
어떤 브라우저가 지원되나요?
현재는 Chrome만 지원됩니다. 다른 브라우저에 대한 지원은 향후 버전에서 추가될 수 있습니다.
Chrome을 헤드리스 모드로 실행할 수 있나요?
네! Claude에게 헤드리스 모드로 브라우저를 시작하도록 요청하세요:
"헤드리스 모드로 Chrome 시작해줘"
또는 Claude가 적절한 상황(예: CI/CD 환경)에서 이 옵션을 사용할 것입니다.
브라우저 창 크기를 설정할 수 있나요?
네. 브라우저를 시작할 때 크기를 지정할 수 있습니다:
"1920x1080 창 크기로 Chrome을 시작해줘"
지원되는 치수: 400-3840픽셀 너비, 400-2160픽셀 높이. 기본값은 1920x1080입니다.
브라우저를 시작하고 한 번에 탐색할 수 있나요?
네! navigationUrl 매개변수를 사용하세요:
"Chrome을 시작하고 https://webdriver.io로 이동해줘"
브라우저를 시작한 다음 별도로 탐색하는 것보다 더 효율적입니다.
스크린샷은 어떻게 찍나요?
간단히 Claude에게 요청하세요:
"현재 페이지의 스크린샷을 찍어줘"
스크린샷은 자동으로 최적화됩니다:
- 최대 2000px 치수로 조정
- 최대 1MB 파일 크기로 압축
- 형식: PNG 또는 JPEG (최적의 품질을 위해 자동 선택)
iframe과 상호작용할 수 있나요?
현재 MCP 서버는 메인 문서에서 작동합니다. iframe 상호작용은 향후 버전에서 추가될 수 있습니다.
커스텀 JavaScript를 실행할 수 있나요?
네! execute_script 도구를 사용하세요:
"페이지 제목을 가져오는 스크립트를 실행해줘" "스크립트 실행: return document.querySelectorAll('button').length"
모바일 자동화
iOS 앱을 어떻게 시작하나요?
필요한 정보와 함께 Claude에게 요청하세요:
"iPhone 15 시뮬레이터에서 /path/to/MyApp.app에 있는 iOS 앱을 실행해줘"
또는 이미 설치된 앱의 경우:
"iPhone 15 시뮬레이터에서 noReset을 활성화하여 앱을 실행해줘"
Android 앱을 어떻게 시작하나요?
"Pixel 7 에뮬레이터에서 /path/to/app.apk에 있는 Android 앱을 실행해줘"
또는 이미 설치된 앱의 경우:
"Pixel 7 에뮬레이터에서 noReset을 활성화하여 앱을 실행해줘"
실제 기기에서 테스트할 수 있나요?
네! 실제 기기의 경우 기기 UDID가 필요합니다:
- iOS: 기기 연결, Finder 열기, 기기 클릭, 시리얼 번호 클릭하여 UDID 확인
- Android: 터미널에서
adb devices실행
그런 다음 Claude에게 요청하세요:
"UDID abc123...인 실제 기기에서 iOS 앱을 실행해줘"
권한 대화상자는 어떻게 처리하나요?
기본적으로 권한은 자동으로 부여됩니다 (autoGrantPermissions: true). 권한 플로우를 테스트해야 하는 경우 이 기능을 비활성화할 수 있습니다:
"자동 권한 부여 없이 앱을 실행해줘"
어떤 제스처가 지원되나요?
- 탭: 요소나 좌표를 탭
- 스와이프: 위, 아래, 왼쪽, 오른쪽으로 스와이프
- 드래그 앤 드롭: 한 요소에서 다른 요소나 좌표로 드래그
참고: long_press는 Appium 모바일 명령으로 execute_script를 통해 사용 가능합니다.
모바일 앱에서 스크롤은 어떻게 하나요?
스와이프 제스처를 사용하세요:
"아래로 스크롤하기 위해 위로 스와이프해줘" "위로 스크롤하기 위해 아래로 스와이프해줘"
기기를 회전시킬 수 있나요?
네:
"기기를 가로 모드로 회전해줘" "기기를 세로 모드로 회전해줘"
하이브리드 앱은 어떻게 처리하나요?
웹뷰가 있는 앱의 경우 컨텍스트를 전환할 수 있습니다:
"사용 가능한 컨텍스트를 가져와줘" "웹뷰 컨텍스트로 전환해줘" "네이티브 컨텍스트로 돌아가줘"
Appium 모바일 명령을 실행할 수 있나요?
네! execute_script 도구를 사용하세요:
"mobile: pressKey" 스크립트를 [{ keycode: 4 }] 인자로 실행해줘 // Android에서 BACK 키 누르기
"mobile: activateApp" 스크립트를 [{ appId: "com.example.app" }] 인자로 실행해줘
"mobile: terminateApp" 스크립트를 [{ bundleId: "com.example.app" }] 인자로 실행해줘
요소 선택
Claude는 어떤 요소와 상호작용할지 어떻게 알 수 있나요?
Claude는 get_visible_elements 도구를 사용하여 페이지/화면의 상호작용 가능한 요소를 식별합니다. 각 요소에는 여러 선택자 전략이 포함됩 니다.
페이지에 요소가 너무 많으면 어떻게 하나요?
페이지네이션을 사용하여 대량의 요소 목록을 관리하세요:
"처음 20개의 보이는 요소를 가져와줘" "오프셋 20과 한도 20으로 보이는 요소를 가져와줘"
응답에는 요소 탐색을 돕기 위한 total, showing, hasMore가 포함됩니다.
특정 유형의 요소만 가져올 수 있나요?
네! elementType 매개변수를 사용하세요:
interactable(기본값): 버튼, 링크, 입력 필드visual: 이미지, SVGall: 두 유형 모두
"페이지에서 시각적 요소를 가져와줘"