تخطى إلى المحتوى الرئيسي

الأدوات

الأدوات التالية متاحة من خلال خادم WebdriverIO MCP. تمكن هذه الأدوات مساعدي الذكاء الاصطناعي من أتمتة المتصفحات وتطبيقات الجوال.

إدارة الجلسات

start_browser

يطلق جلسة متصفح Chrome.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
headlessbooleanلاfalseتشغيل Chrome في وضع بدون واجهة
windowWidthnumberلا1920عرض نافذة المتصفح (400-3840)
windowHeightnumberلا1080ارتفاع نافذة المتصفح (400-2160)
navigationUrlstringلا-عنوان URL للانتقال إليه بعد بدء المتصفح

مثال

Start a browser with 1920x1080 resolution and navigate to webdriver.io

الدعم

  • متصفحات سطح المكتب

start_app_session

يطلق جلسة تطبيق جوال على iOS أو Android عبر Appium.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
platformstringنعم-المنصة المراد أتمتتها: iOS أو Android
deviceNamestringنعم-اسم الجهاز أو المحاكي
appPathstringلا*-مسار ملف التطبيق (.app أو .ipa أو .apk)
platformVersionstringلا-إصدار نظام التشغيل (مثل 17.0، 14)
automationNamestringلاAutoXCUITest (iOS)، UiAutomator2 أو Espresso (Android)
udidstringلا-معرف الجهاز الفريد (مطلوب لأجهزة iOS الحقيقية)
noResetbooleanلاfalseالحفاظ على حالة التطبيق بين الجلسات
fullResetbooleanلاtrueإلغاء التثبيت وإعادة تثبيت التطبيق قبل الجلسة
autoGrantPermissionsbooleanلاtrueمنح أذونات التطبيق تلقائيًا
autoAcceptAlertsbooleanلاtrueقبول تنبيهات النظام تلقائيًا
autoDismissAlertsbooleanلاfalseرفض التنبيهات (بدلاً من قبولها)
appWaitActivitystringلا-النشاط للانتظار عند التشغيل (Android فقط)
newCommandTimeoutnumberلا60الثواني قبل انتهاء مهلة الجلسة بسبب عدم النشاط
appiumHoststringلا127.0.0.1اسم مضيف خادم Appium
appiumPortnumberلا4723منفذ خادم Appium
appiumPathstringلا/مسار خادم Appium

*إما يجب توفير appPath أو noReset: true للاتصال بتطبيق قيد التشغيل بالفعل.

مثال

Start an iOS app session on iPhone 15 simulator with my app at /path/to/app.app

الدعم

  • محاكيات iOS
  • أجهزة iOS الحقيقية
  • محاكيات Android
  • أجهزة Android الحقيقية

close_session

يغلق جلسة المتصفح أو التطبيق الحالية.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
detachbooleanلاfalseفصل الجلسة بدلاً من إغلاقها (يبقي المتصفح/التطبيق قيد التشغيل)

ملاحظات

الجلسات مع noReset: true أو بدون appPath تفصل تلقائيًا عند الإغلاق للحفاظ على الحالة.

الدعم

  • متصفحات سطح المكتب
  • تطبيقات الجوال

التنقل

ينتقل إلى عنوان URL.

المعلمات

المعلمةالنوعإلزاميالوصف
urlstringنعمعنوان URL المراد الانتقال إليه

مثال

Navigate to https://webdriver.io

الدعم

  • متصفحات سطح المكتب

التفاعل مع العناصر

click_element

ينقر على عنصر محدد بواسطة منتقي.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
selectorstringنعم-منتقي CSS أو XPath أو منتقي جوال
scrollToViewbooleanلاtrueتمرير العنصر للعرض قبل النقر
timeoutnumberلا3000الوقت الأقصى للانتظار للعنصر (بالملي ثانية)

ملاحظات

  • يدعم منتقيات نصوص WebdriverIO: button=Exact text أو a*=Contains text
  • يستخدم محاذاة المركز لوضع التمرير

مثال

Click the element with selector "#submit-button"

الدعم

  • متصفحات سطح المكتب
  • تطبيقات الجوال الأصلية

set_value

يكتب نصًا في حقل إدخال.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
selectorstringنعم-منتقي لعنصر الإدخال
valuestringنعم-النص المراد كتابته
scrollToViewbooleanلاtrueتمرير العنصر للعرض قبل الكتابة
timeoutnumberلا3000الوقت الأقصى للانتظار للعنصر (بالملي ثانية)

ملاحظات

يمسح القيمة الموجودة قبل كتابة نص جديد.

مثال

Set the value "john@example.com" in the element with selector "#email"

الدعم

  • متصفحات سطح المكتب
  • تطبيقات الجوال الأصلية

تحليل الصفحة

get_visible_elements

يحصل على العناصر المرئية والقابلة للتفاعل في الصفحة الحالية أو الشاشة. هذه هي الأداة الأساسية لاكتشاف العناصر المتاحة للتفاعل.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
elementTypestringلاinteractableنوع العناصر: interactable (أزرار/روابط/حقول إدخال)، visual (صور/SVG)، أو all
inViewportOnlybooleanلاtrueإرجاع العناصر المرئية فقط في منفذ العرض
includeContainersbooleanلاfalseتضمين حاويات التخطيط (ViewGroup، ScrollView، إلخ)
includeBoundsbooleanلاfalseتضمين إحداثيات العنصر (x، y، العرض، الارتفاع)
limitnumberلا0الحد الأقصى للعناصر المراد إرجاعها (0 = غير محدود)
offsetnumberلا0عدد العناصر المراد تخطيها (للتصفح)

العائد

{
"total": 42,
"showing": 20,
"hasMore": true,
"elements": [...]
}

عناصر الويب تشمل: tagName، type، id، className، textContent، value، placeholder، href، ariaLabel، role، cssSelector، isInViewport

عناصر الجوال تشمل: استراتيجيات تحديد متعددة (معرف إمكانية الوصول، معرف المورد، XPath، UiAutomator/predicates)، نوع العنصر، النص، واختياريًا الحدود

ملاحظات

  • الويب: يستخدم نصًا برمجيًا محسّنًا للمتصفح لاكتشاف العناصر بسرعة
  • الجوال: يستخدم تحليل مصدر صفحة XML بكفاءة (طلبان HTTP مقابل أكثر من 600 لاستعلامات العناصر)
  • استخدم التصفح (limit و offset) للصفحات الكبيرة لتقليل استخدام الرموز

مثال

Get all visible elements on the page with their coordinates

الدعم

  • متصفحات سطح المكتب
  • تطبيقات الجوال

get_accessibility

يحصل على شجرة إمكانية الوصول للصفحة الحالية مع معلومات دلالية حول الأدوار والأسماء والحالات.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
limitnumberلا100الحد الأقصى للعقد المراد إرجاعها (0 = غير محدود)
offsetnumberلا0عدد العقد المراد تخطيها (للتصفح)
rolesstring[]لاالكلتصفية لأدوار محددة (مثل ["button", "link", "textbox"])
namedOnlybooleanلاtrueإرجاع العقد ذات الاسم/التسمية فقط

العائد

{
"total": 85,
"showing": 100,
"hasMore": false,
"nodes": [
{ "role": "button", "name": "Submit" },
{ "role": "link", "name": "Home" }
]
}

ملاحظات

  • للمتصفح فقط. لتطبيقات الجوال، استخدم get_visible_elements بدلاً من ذلك
  • مفيد عندما لا يُرجع get_visible_elements العناصر المتوقعة
  • namedOnly: true يصفي الحاويات المجهولة ويقلل الضوضاء

الدعم

  • متصفحات سطح المكتب

لقطات الشاشة

take_screenshot

يلتقط لقطة شاشة لمنفذ العرض الحالي.

المعلمات

المعلمةالنوعإلزاميالوصف
outputPathstringلامسار لحفظ ملف لقطة الشاشة. إذا تم حذفه، يتم إرجاع بيانات base64

العائد

بيانات الصورة المشفرة بنظام Base64 (PNG أو JPEG) مع معلومات الحجم.

ملاحظات

يتم تحسين لقطات الشاشة تلقائيًا:

  • الحد الأقصى للأبعاد: 2000 بكسل (يتم تصغيرها إذا كانت أكبر)
  • الحد الأقصى لحجم الملف: 1 ميجابايت
  • الصيغة: PNG بأقصى ضغط، أو JPEG إذا لزم الأمر لتلبية حد الحجم

الدعم

  • متصفحات سطح المكتب
  • تطبيقات الجوال

التمرير

scroll

يمرر الصفحة لأعلى أو لأسفل بعدد محدد من البكسلات.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
directionstringنعم-اتجاه التمرير: up أو down
pixelsnumberلا500عدد البكسلات المراد التمرير

ملاحظات

للمتصفح فقط. للتمرير على الجوال، استخدم أداة swipe بدلاً من ذلك.

الدعم

  • متصفحات سطح المكتب

إدارة ملفات تعريف الارتباط

get_cookies

يحصل على ملفات تعريف الارتباط من الجلسة الحالية.

المعلمات

المعلمةالنوعإلزاميالوصف
namestringلااسم ملف تعريف ارتباط محدد للحصول عليه (حذفه للحصول على جميع ملفات تعريف الارتباط)

العائد

كائنات ملفات تعريف الارتباط مع الاسم والقيمة والمجال والمسار وتاريخ انتهاء الصلاحية وآمن وhttpOnly.

الدعم

  • متصفحات سطح المكتب

يعين ملف تعريف ارتباط في الجلسة الحالية.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
namestringنعم-اسم ملف تعريف الارتباط
valuestringنعم-قيمة ملف تعريف الارتباط
domainstringلاالحاليمجال ملف تعريف الارتباط
pathstringلا/مسار ملف تعريف الارتباط
expirynumberلا-تاريخ انتهاء الصلاحية كطابع زمني Unix (بالثواني)
securebooleanلا-علامة آمن
httpOnlybooleanلا-علامة HttpOnly
sameSitestringلا-سمة SameSite: strict أو lax أو none

الدعم

  • متصفحات سطح المكتب

delete_cookies

يحذف ملفات تعريف الارتباط من الجلسة الحالية.

المعلمات

المعلمةالنوعإلزاميالوصف
namestringلااسم ملف تعريف ارتباط محدد لحذفه (حذفه لحذف الكل)

الدعم

  • متصفحات سطح المكتب

إيماءات اللمس (الجوال)

tap_element

ينقر على عنصر أو إحداثيات الشاشة.

المعلمات

المعلمةالنوعإلزاميالوصف
selectorstringلا*منتقي للعنصر المراد النقر عليه
xnumberلا*إحداثية X للنقر
ynumberلا*إحداثية Y للنقر

*إما selector أو كلا من x و y مطلوبان.

الدعم

  • تطبيقات الجوال

swipe

ينفذ إيماءة سحب في الاتجاه المحدد.

المعلمات

المعلمةالنوعإلزاميالقيمة الافتراضيةالوصف
directionstringنعم-اتجاه السحب: up أو down أو left أو right
durationnumberلا500مدة السحب بالملي ثانية (100-5000)
percentnumberلا0.5/0.95نسبة الشاشة المراد سحبها (0-1)

ملاحظات

  • النسبة الافتراضية: 0.5 للسحب العمودي، 0.95 للسحب الأفقي
  • يشير الاتجاه إلى حركة المحتوى: "سحب لأعلى" يمرر المحتوى لأعلى

مثال

Swipe up to scroll down the screen

الدعم

  • تطبيقات الجوال

drag_and_drop

يسحب عنصرًا إلى عنصر آخر أو إحداثيات.

المعلمات

المعلمةالنوعإلزاميالوصف
sourceSelectorstringنعممنتقي العنصر المصدر للسحب
targetSelectorstringلا*منتقي العنصر الهدف للإسقاط عليه
xnumberلا*إزاحة X الهدف (إذا لم يكن هناك targetSelector)
ynumberلا*إزاحة Y الهدف (إذا لم يكن هناك targetSelector)
durationnumberلاالافتراضي

*إما targetSelector أو كلا من x و y مطلوبان.

الدعم

  • تطبيقات الجوال

دورة حياة التطبيق (الجوال)

get_app_state

يحصل على الحالة الحالية للتطبيق.

المعلمات

المعلمةالنوعإلزاميالوصف
bundleIdstringنعممعرف التطبيق (معرف الحزمة لنظام iOS، اسم الحزمة لنظام Android)

العائد

حالة التطبيق: not installed أو not running أو running in background (suspended) أو running in background أو running in foreground.

الدعم

  • تطبيقات الجوال

تبديل السياق (التطبيقات الهجينة)

get_contexts

يسرد جميع السياقات المتاحة (الأصلية والعرض الويب).

المعلمات

لا شيء

العائد

مصفوفة أسماء السياقات (مثل ["NATIVE_APP", "WEBVIEW_com.example.app"]).

الدعم

  • تطبيقات الجوال الهجينة

get_current_context

يحصل على السياق النشط حاليًا.

المعلمات

لا شيء

العائد

اسم السياق الحالي (مثل NATIVE_APP أو WEBVIEW_*).

الدعم

  • تطبيقات الجوال الهجينة

switch_context

يتبدل بين سياقات التطبيق الأصلي وعرض الويب.

المعلمات

المعلمةالنوعإلزاميالوصف
contextstringنعماسم السياق أو الفهرس (1-based) من get_contexts

مثال

Switch to the WEBVIEW_com.example.app context

الدعم

  • تطبيقات الجوال الهجينة

التحكم بالجهاز (الجوال)

rotate_device

يدور الجهاز إلى اتجاه محدد.

المعلمات

المعلمةالنوعإلزاميالوصف
orientationstringنعمPORTRAIT أو LANDSCAPE

الدعم

  • تطبيقات الجوال

hide_keyboard

يخفي لوحة المفاتيح على الشاشة.

المعلمات

لا شيء

الدعم

  • تطبيقات الجوال

get_geolocation

يحصل على إحداثيات GPS الحالية.

المعلمات

لا شيء

العائد

كائن مع latitude و longitude و altitude.

الدعم

  • تطبيقات الجوال

set_geolocation

يعين إحداثيات GPS للجهاز.

المعلمات

المعلمةالنوعإلزاميالوصف
latitudenumberنعمإحداثية خط العرض (-90 إلى 90)
longitudenumberنعمإحداثية خط الطول (-180 إلى 180)
altitudenumberلاالارتفاع بالأمتار

مثال

Set geolocation to San Francisco (37.7749, -122.4194)

الدعم

  • تطبيقات الجوال

تنفيذ النصوص البرمجية

execute_script

ينفذ JavaScript في المتصفح أو أوامر الجوال عبر Appium.

المعلمات

المعلمةالنوعإلزاميالوصف
scriptstringنعمكود JavaScript (المتصفح) أو أمر الجوال (مثل mobile: pressKey)
argsarrayلاوسيطات للنص البرمجي

أمثلة المتصفح

// Get page title
execute_script({ script: "return document.title" })

// Get scroll position
execute_script({ script: "return window.scrollY" })

// Click element by selector
execute_script({ script: "arguments[0].click()", args: ["#myButton"] })

أمثلة الجوال (Appium)

// Press back key (Android)
execute_script({ script: "mobile: pressKey", args: [{ keycode: 4 }] })

// Activate app
execute_script({ script: "mobile: activateApp", args: [{ appId: "com.example" }] })

// Terminate app
execute_script({ script: "mobile: terminateApp", args: [{ appId: "com.example" }] })

// Deep link
execute_script({ script: "mobile: deepLink", args: [{ url: "myapp://screen", package: "com.example" }] })

// Shell command (Android)
execute_script({ script: "mobile: shell", args: [{ command: "dumpsys", args: ["battery"] }] })

رموز مفاتيح Android الشائعة

المفتاحالرمز
BACK4
HOME3
ENTER66
MENU82
SEARCH84

المزيد من أوامر الجوال

للحصول على قائمة كاملة بأوامر Appium المتاحة للجوال، راجع:

الدعم

  • متصفحات سطح المكتب
  • تطبيقات الجوال (عبر أوامر Appium المحمولة)

Welcome! How can I help?

WebdriverIO AI Copilot