मुख्य सामग्री पर जाएं

अक्सर पूछे जाने वाले प्रश्न

WebdriverIO MCP के बारे में अक्सर पूछे जाने वाले प्रश्न।

General

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 ऐप शुरू करें और टेस्ट यूजर के रूप में लॉग इन करें"

Installation & Setup

मैं 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 की आवश्यकता है?

हां। मोबाइल ऑटोमेशन के लिए आवश्यक है:

  1. Appium सर्वर चल रहा हो (npm install -g appium && appium)
  2. प्लेटफॉर्म ड्राइवर इंस्टॉल हों (appium driver install xcuitest iOS के लिए, appium driver install uiautomator2 Android के लिए)
  3. उपयुक्त डेवलपमेंट टूल्स (iOS के लिए Xcode, Android के लिए Android SDK)

Browser Automation

कौन से ब्राउज़र समर्थित हैं?

वर्तमान में, केवल Chrome समर्थित है। अन्य ब्राउज़रों के लिए समर्थन भविष्य के संस्करणों में जोड़ा जा सकता है।

क्या मैं Chrome को हेडलेस मोड में चला सकता हूँ?

हां! Claude से ब्राउज़र को हेडलेस मोड में शुरू करने के लिए कहें:

"हेडलेस मोड में Chrome शुरू करें"

या Claude जब उचित हो (जैसे, CI/CD संदर्भों में) इस विकल्प का उपयोग करेगा।

क्या मैं ब्राउज़र विंडो का आकार सेट कर सकता हूँ?

हां। आप ब्राउज़र शुरू करते समय डाइमेंशन निर्दिष्ट कर सकते हैं:

"1920x1080 के विंडो आकार के साथ Chrome शुरू करें"

समर्थित डाइमेंशन: 400-3840 पिक्सेल चौड़ा, 400-2160 पिक्सेल ऊंचा। डिफ़ॉल्ट 1920x1080 है।

क्या मैं एक ही समय में ब्राउज़र शुरू कर सकता हूँ और नेविगेट कर सकता हूँ?

हां! navigationUrl पैरामीटर का उपयोग करें:

"Chrome शुरू करें और https://webdriver.io पर नेविगेट करें"

यह ब्राउज़र शुरू करने और फिर अलग से नेविगेट करने से अधिक कुशल है।

मैं स्क्रीनशॉट कैसे लेता हूँ?

बस Claude से पूछें:

"वर्तमान पेज का स्क्रीनशॉट लें"

स्क्रीनशॉट स्वचालित रूप से अनुकूलित किए जाते हैं:

  • अधिकतम 2000px आयाम तक स्केल किया गया
  • अधिकतम 1MB फ़ाइल आकार तक कंप्रेस किया गया
  • फॉर्मेट: PNG या JPEG (इष्टतम गुणवत्ता के लिए स्वचालित रूप से चयनित)

क्या मैं iframes के साथ इंटरैक्ट कर सकता हूँ?

वर्तमान में, MCP सर्वर मुख्य डॉक्यूमेंट पर काम करता है। iframe इंटरैक्शन भविष्य के संस्करणों में जोड़ा जा सकता है।

क्या मैं कस्टम JavaScript एक्सिक्यूट कर सकता हूँ?

हां! execute_script टूल का उपयोग करें:

"पेज टाइटल प्राप्त करने के लिए स्क्रिप्ट एक्सिक्यूट करें" "स्क्रिप्ट एक्सिक्यूट करें: return document.querySelectorAll('button').length"


Mobile Automation

मैं iOS ऐप कैसे शुरू करूँ?

आवश्यक विवरण के साथ Claude से पूछें:

"मेरा iOS ऐप /path/to/MyApp.app पर iPhone 15 सिमुलेटर पर शुरू करें"

या इंस्टॉल किए गए ऐप के लिए:

"noReset इनेबल के साथ iPhone 15 सिमुलेटर पर ऐप शुरू करें"

मैं Android ऐप कैसे शुरू करूँ?

"मेरा Android ऐप /path/to/app.apk पर Pixel 7 एमुलेटर पर शुरू करें"

या इंस्टॉल किए गए ऐप के लिए:

"noReset इनेबल के साथ Pixel 7 एमुलेटर पर ऐप शुरू करें"

क्या मैं वास्तविक डिवाइस पर टेस्ट कर सकता हूँ?

हां! वास्तविक डिवाइस के लिए, आपको डिवाइस UDID की आवश्यकता होगी:

  • iOS: डिवाइस कनेक्ट करें, Finder खोलें, डिवाइस पर क्लिक करें, UDID देखने के लिए सीरियल नंबर पर क्लिक करें
  • Android: टर्मिनल में adb devices चलाएं

फिर Claude से पूछें:

"UDID abc123... के साथ वास्तविक डिवाइस पर मेरा iOS ऐप शुरू करें"

मैं परमिशन डायलॉग को कैसे हैंडल करूँ?

डिफ़ॉल्ट रूप से, अनुमतियां स्वचालित रूप से प्रदान की जाती हैं (autoGrantPermissions: true)। यदि आपको परमिशन फ़्लो का परीक्षण करने की आवश्यकता है, तो आप इसे अक्षम कर सकते हैं:

"स्वचालित रूप से अनुमतियां प्रदान किए बिना मेरा ऐप शुरू करें"

कौन से जेस्चर समर्थित हैं?

  • टैप: एलिमेंट्स या कोऑर्डिनेट्स पर टैप करें
  • स्वाइप: ऊपर, नीचे, बाएँ, या दाएँ स्वाइप करें
  • ड्रैग एंड ड्रॉप: एक एलिमेंट से दूसरे एलिमेंट या कोऑर्डिनेट्स तक ड्रैग करें

नोट: long_press Appium मोबाइल कमांड के साथ execute_script के माध्यम से उपलब्ध है।

मैं मोबाइल ऐप्स में स्क्रॉल कैसे करूँ?

स्वाइप जेस्चर का उपयोग करें:

"नीचे स्क्रॉल करने के लिए ऊपर स्वाइप करें" "ऊपर स्क्रॉल करने के लिए नीचे स्वाइप करें"

क्या मैं डिवाइस को रोटेट कर सकता हूँ?

हां:

"डिवाइस को लैंडस्केप में रोटेट करें" "डिवाइस को पोर्ट्रेट में रोटेट करें"

मैं हाइब्रिड ऐप्स को कैसे हैंडल करूँ?

वेबव्यू वाले ऐप्स के लिए, आप कॉन्टेक्स्ट स्विच कर सकते हैं:

"उपलब्ध कॉन्टेक्स्ट प्राप्त करें" "वेबव्यू कॉन्टेक्स्ट में स्विच करें" "नेटिव कॉन्टेक्स्ट में वापस स्विच करें"

क्या मैं Appium मोबाइल कमांड एक्सिक्यूट कर सकता हूँ?

हां! execute_script टूल का उपयोग करें:

Execute script "mobile: pressKey" with args [{ keycode: 4 }]  // Press BACK on Android
Execute script "mobile: activateApp" with args [{ appId: "com.example.app" }]
Execute script "mobile: terminateApp" with args [{ bundleId: "com.example.app" }]

Element Selection

Claude कैसे जानता है कि किस एलिमेंट के साथ इंटरैक्ट करना है?

Claude पेज/स्क्रीन पर इंटरैक्टिव एलिमेंट्स की पहचान करने के लिए get_visible_elements टूल का उपयोग करता है। प्रत्येक एलिमेंट के साथ कई सेलेक्टर स्ट्रेटेजी आती हैं।

अगर पेज पर बहुत सारे एलिमेंट्स हों तो क्या होगा?

बड़ी एलिमेंट लिस्ट को मैनेज करने के लिए पेजिनेशन का उपयोग करें:

"पहले 20 दृश्यमान एलिमेंट्स प्राप्त करें" "ऑफसेट 20 और लिमिट 20 के साथ दृश्यमान एलिमेंट्स प्राप्त करें"

रिस्पॉन्स में एलिमेंट्स के माध्यम से नेविगेट करने में मदद के लिए total, showing, और hasMore शामिल हैं।

क्या मैं केवल विशिष्ट प्रकार के एलिमेंट्स प्राप्त कर सकता हूँ?

हां! elementType पैरामीटर का उपयोग करें:

  • interactable (डिफ़ॉल्ट): बटन, लिंक, इनपुट
  • visual: इमेज, SVG
  • all: दोनों प्रकार

"पेज पर दृश्यमान विजुअल एलिमेंट्स प्राप्त करें"

अगर Claude गलत एलिमेंट पर क्लिक करता है तो क्या?

आप अधिक स्पष्ट हो सकते हैं:

  • सटीक टेक्स्ट प्रदान करें: "उस बटन पर क्लिक करें जिस पर 'Submit Order' लिखा है"
  • सेलेक्टर प्रदान करें: "सेलेक्टर #submit-btn वाले एलिमेंट पर क्लिक करें"
  • एक्सेसिबिलिटी ID प्रदान करें: "एक्सेसिबिलिटी ID loginButton वाले एलिमेंट पर क्लिक करें"

मोबाइल के लिए सबसे अच्छी सेलेक्टर स्ट्रेटेजी क्या है?

  1. एक्सेसिबिलिटी ID (सर्वोत्तम) - ~loginButton
  2. रिसोर्स ID (Android) - id=login_button
  3. प्रेडिकेट स्ट्रिंग (iOS) - -ios predicate string:label == "Login"
  4. XPath (अंतिम उपाय) - धीमा लेकिन हर जगह काम करता है

एक्सेसिबिलिटी ट्री क्या है और मुझे इसका उपयोग कब करना चाहिए?

एक्सेसिबिलिटी ट्री पेज एलिमेंट्स के बारे में सिमेंटिक जानकारी प्रदान करती है (रोल्स, नेम्स, स्टेट्स)। निम्न स्थितियों में get_accessibility का उपयोग करें:

  • get_visible_elements अपेक्षित एलिमेंट्स नहीं देता
  • आपको एक्सेसिबिलिटी रोल (बटन, लिंक, टेक्स्टबॉक्स, आदि) द्वारा एलिमेंट्स ढूंढने की आवश्यकता है
  • आपको एलिमेंट्स के बारे में विस्तृत सिमेंटिक जानकारी की आवश्यकता है

"बटन और लिंक रोल्स के लिए फ़िल्टर की गई एक्सेसिबिलिटी ट्री प्राप्त करें"


Session Management

क्या मैं एक साथ कई सेशन रख सकता हूँ?

नहीं। MCP सर्वर एकल-सेशन मॉडल का उपयोग करता है। एक समय में केवल एक ब्राउज़र या ऐप सेशन सक्रिय हो सकता है।

सेशन बंद करने पर क्या होता है?

यह सेशन प्रकार और सेटिंग्स पर निर्भर करता है:

  • ब्राउज़र: Chrome पूरी तरह से बंद हो जाता है
  • मोबाइल (noReset: false के साथ): ऐप समाप्त हो जाता है
  • मोबाइल (noReset: true या कोई appPath नहीं): ऐप खुला रहता है (सेशन स्वचालित रूप से डिटैच हो जाता है)

क्या मैं सेशन के बीच ऐप स्टेट को संरक्षित कर सकता हूँ?

हां! noReset विकल्प का उपयोग करें:

"noReset इनेबल के साथ मेरा ऐप शुरू करें"

यह लॉगिन स्टेट, प्रेफरेंस और अन्य ऐप डेटा को संरक्षित रखता है।

क्लोज़ और डिटैच के बीच क्या अंतर है?

  • क्लोज़: ब्राउज़र/ऐप को पूरी तरह से समाप्त करता है
  • डिटैच: ऑटोमेशन को डिस्कनेक्ट करता है लेकिन ब्राउज़र/ऐप को चलता रहने देता है

डिटैच उपयोगी है जब आप ऑटोमेशन के बाद स्थिति का मैन्युअल रूप से निरीक्षण करना चाहते हैं।

डीबगिंग के दौरान मेरा सेशन लगातार टाइम आउट हो जाता है

कमांड टाइमआउट बढ़ाएं:

"300 सेकंड के newCommandTimeout के साथ मेरा ऐप शुरू करें"

डिफ़ॉल्ट 60 सेकंड है। लंबे डीबगिंग सेशन के लिए, 300-600 सेकंड का प्रयास करें।


Troubleshooting

"Session not found" एरर

इसका मतलब है कि कोई सक्रिय सेशन मौजूद नहीं है। पहले ब्राउज़र या ऐप सेशन शुरू करें:

"Chrome शुरू करें और google.com पर नेविगेट करें"

"Element not found" एरर

हो सकता है कि एलिमेंट दृश्यमान न हो या उसका सेलेक्टर अलग हो। ये प्रयास करें:

  1. Claude से पहले सभी दृश्यमान एलिमेंट्स प्राप्त करने के लिए कहें
  2. अधिक विशिष्ट सेलेक्टर प्रदान करें
  3. पेज/ऐप को पूरी तरह से लोड होने की प्रतीक्षा करें
  4. ऑफ-स्क्रीन एलिमेंट्स खोजने के लिए inViewportOnly: false का उपयोग करें

ब्राउज़र शुरू नहीं हो रहा है

  1. सुनिश्चित करें कि Chrome इंस्टॉल है
  2. जांचें कि क्या कोई अन्य प्रोसेस डीबगिंग पोर्ट (9222) का उपयोग कर रहा है
  3. हेडलेस मोड का प्रयास करें

Appium कनेक्शन फेल हो गया

यह मोबाइल ऑटोमेशन शुरू करते समय सबसे आम समस्या है।

  1. सत्यापित करें कि Appium चल रहा है: curl http://localhost:4723/status
  2. यदि आवश्यक हो तो Appium शुरू करें: appium
  3. जांचें कि आपका Appium URL कॉन्फ़िगरेशन सर्वर से मेल खाता है
  4. सुनिश्चित करें कि ड्राइवर इंस्टॉल हैं: appium driver list --installed
टिप

MCP सर्वर को मोबाइल सेशन शुरू करने से पहले Appium चल रहे होने की आवश्यकता होती है। सुनिश्चित करें कि पहले Appium शुरू करें:

appium

भविष्य के संस्करणों में स्वचालित Appium सेवा प्रबंधन शामिल हो सकता है।

iOS सिमुलेटर शुरू नहीं हो रहा है

  1. सुनिश्चित करें कि Xcode इंस्टॉल है: xcode-select --install
  2. उपलब्ध सिमुलेटर सूचीबद्ध करें: xcrun simctl list devices
  3. Console.app में विशिष्ट सिमुलेटर त्रुटियों की जांच करें

Android एमुलेटर शुरू नहीं हो रहा है

  1. ANDROID_HOME सेट करें: export ANDROID_HOME=$HOME/Library/Android/sdk
  2. एमुलेटर जांचें: emulator -list-avds
  3. एमुलेटर मैन्युअल रूप से शुरू करें: emulator -avd <avd-name>
  4. सत्यापित करें कि डिवाइस कनेक्टेड है: adb devices

स्क्रीनशॉट काम नहीं कर रहे हैं

  1. मोबाइल के लिए, सुनिश्चित करें कि सेशन सक्रिय है
  2. ब्राउज़र के लिए, एक अलग पेज का प्रयास करें (कुछ पेज स्क्रीनशॉट को ब्लॉक करते हैं)
  3. त्रुटियों के लिए Claude Desktop लॉग्स की जांच करें

स्क्रीनशॉट स्वचालित रूप से अधिकतम 1MB तक कंप्रेस किए जाते हैं, इसलिए बड़े स्क्रीनशॉट काम करेंगे लेकिन कम गुणवत्ता के हो सकते हैं।


Performance

मोबाइल ऑटोमेशन धीमा क्यों है?

मोबाइल ऑटोमेशन में शामिल हैं:

  1. Appium सर्वर के साथ नेटवर्क संचार
  2. Appium का डिवाइस/सिमुलेटर के साथ संचार
  3. डिवाइस रेंडरिंग और प्रतिक्रिया

तेज़ ऑटोमेशन के लिए टिप्स:

  • विकास के लिए वास्तविक डिवाइस के बजाय एमुलेटर/सिमुलेटर का उपयोग करें
  • XPath के बजाय एक्सेसिबिलिटी ID का उपयोग करें
  • एलिमेंट डिटेक्शन के लिए inViewportOnly: true इनेबल करें
  • टोकन उपयोग कम करने के लिए पेजिनेशन (limit) का उपयोग करें

मैं एलिमेंट डिटेक्शन को कैसे तेज़ कर सकता हूँ?

MCP सर्वर पहले से ही XML पेज सोर्स पार्सिंग (पारंपरिक एलिमेंट क्वेरी के लिए 600+ के विपरीत 2 HTTP कॉल) का उपयोग करके एलिमेंट डिटेक्शन को अनुकूलित करता है। अतिरिक्त टिप्स:

  • inViewportOnly: true (डिफ़ॉल्ट) रखें
  • includeContainers: false (डिफ़ॉल्ट) सेट करें
  • बड़ी स्क्रीन पर पेजिनेशन के लिए limit और offset का उपयोग करें
  • सभी एलिमेंट्स खोजने के बजाय विशिष्ट सेलेक्टर का उपयोग करें

स्क्रीनशॉट धीमे हैं या विफल हो रहे हैं

स्क्रीनशॉट स्वचालित रूप से अनुकूलित किए जाते हैं:

  • 2000px से बड़े होने पर रिसाइज़ किया जाता है
  • 1MB से कम रहने के लिए कंप्रेस किया जाता है
  • अगर PNG बहुत बड़ा हो तो JPEG में कन्वर्ट किया जाता है

यह अनुकूलन प्रोसेसिंग समय को कम करता है और यह सुनिश्चित करता है कि Claude इमेज को संभाल सके।


Limitations

वर्तमान सीमाएँ क्या हैं?

  • सिंगल सेशन: एक समय में केवल एक ब्राउज़र/ऐप
  • ब्राउज़र समर्थन: केवल Chrome (फिलहाल)
  • iframe समर्थन: iframe के लिए सीमित समर्थन
  • फाइल अपलोड: टूल्स के माध्यम से सीधे समर्थित नहीं
  • ऑडियो/वीडियो: मीडिया प्लेबैक के साथ इंटरैक्ट नहीं कर सकते
  • ब्राउज़र एक्सटेंशन: समर्थित नहीं

क्या मैं इसका उपयोग प्रोडक्शन टेस्टिंग के लिए कर सकता हूँ?

WebdriverIO MCP इंटरैक्टिव AI-असिस्टेड ऑटोमेशन के लिए डिज़ाइन किया गया है। प्रोडक्शन CI/CD टेस्टिंग के लिए, पूर्ण प्रोग्रामेटिक नियंत्रण के साथ WebdriverIO के पारंपरिक टेस्ट रनर का उपयोग करने पर विचार करें।


Security

क्या मेरा डेटा सुरक्षित है?

MCP सर्वर आपके मशीन पर स्थानीय रूप से चलता है। सभी ऑटोमेशन स्थानीय ब्राउज़र/Appium कनेक्शन के माध्यम से होता है। उस डेटा के अलावा जिसे आप स्पष्ट रूप से नेविगेट करते हैं, कोई भी डेटा बाहरी सर्वर को नहीं भेजा जाता है।

क्या Claude मेरे पासवर्ड एक्सेस कर सकता है?

Claude पेज कंटेंट देख सकता है और एलिमेंट्स के साथ इंटरैक्ट कर सकता है, लेकिन:

  • <input type="password"> फील्ड में पासवर्ड मास्क किए जाते हैं
  • आपको संवेदनशील क्रेडेंशियल्स के ऑटोमेशन से बचना चाहिए
  • ऑटोमेशन के लिए टेस्ट अकाउंट का उपयोग करें

Contributing

मैं कैसे योगदान दे सकता हूँ?

निम्नलिखित के लिए GitHub रिपॉजिटरी पर जाएँ:

  • बग्स रिपोर्ट करें
  • फीचर्स का अनुरोध करें
  • पुल रिक्वेस्ट सबमिट करें

मैं कहां से मदद ले सकता हूँ?

Welcome! How can I help?

WebdriverIO AI Copilot