تعرَّف على طرق مشاركة مسارات المستخدمين وتعديلها وخطواتها من خلال هذا المرجع الشامل الخاص بالميزات ضمن لوحة مسجّلة أدوات مطوري البرامج في Chrome.
للتعرّف على أساسيات استخدام لوحة المسجّلة الذكية، يمكنك الاطّلاع على مقالة تسجيل وإعادة تشغيل وقياس تدفقات المستخدمين.
التعرّف على الاختصارات وتخصيصها
يمكنك استخدام الاختصارات للتنقّل في المسجّلة الذكية بشكل أسرع. للحصول على قائمة بالاختصارات التلقائية، يُرجى الاطّلاع على اختصارات لوحة مفاتيح لوحة "المسجّلة الذكية".
لفتح تلميح يتضمّن جميع الاختصارات مباشرةً في المسجّلة الذكية، انقر على مساعدة عرض الاختصارات في أعلى يسار الصفحة.
لتخصيص اختصارات المسجّلة الذكية، اتّبِع الخطوات التالية:
- افتح الإعدادات > الاختصارات:
- انتقِل إلى قسم المسجّلة الذكية.
- اتّبِع الخطوات الواردة في مقالة تخصيص الاختصارات.
تعديل تدفقات المستخدم
في أعلى لوحة المسجّلة الذكية، تتوفّر لك خيارات لإجراء ما يلي:
- إضافة تسجيل جديد. انقر على الرمز + من أجل إضافة تسجيل جديد.
- عرض كل التسجيلات تعرض القائمة المنسدلة قائمة التسجيلات المحفوظة. حدِّد خيار [number] تسجيلاً لتوسيع قائمة التسجيلات المحفوظة وإدارتها.
تصدير تسجيل: لتخصيص النص البرمجي بشكلٍ أكبر أو مشاركته لأغراض إعداد تقارير الأخطاء، يمكنك تصدير مسار المستخدم بأحد التنسيقات التالية:
- بتنسيق JSON.
- النص البرمجي @puppeteer/replay.
- Puppeteer النصي.
- Puppeteer (بما في ذلك تحليل Lighthouse)
لمزيد من المعلومات حول التنسيقات، يُرجى الاطّلاع على تصدير تدفق المستخدم.
استيراد تسجيل بتنسيق JSON فقط
حذف تسجيل احذف التسجيل الذي اخترته.
يمكنك أيضًا تعديل اسم التسجيل بالنقر على زر التعديل بجانبه.
مشاركة تدفقات المستخدم
يمكنك تصدير واستيراد مسارات المستخدمين في "المسجّلة الذكية". ويُعدّ هذا الإجراء مفيدًا للإبلاغ عن الأخطاء لأنّه يمكنك مشاركة سجلّ دقيق للخطوات التي تؤدي إلى ظهور خطأ. ويمكنك أيضًا تصديره وإعادة تشغيله باستخدام مكتبات خارجية.
تصدير تدفق المستخدم
لتصدير تدفق المستخدم:
- افتح تدفق المستخدم الذي تريد تصديره.
- انقر على تصدير في أعلى لوحة المسجّلة الذكية.
- اختَر أحد التنسيقات التالية من القائمة المنسدلة:
- ملف JSON نزِّل التسجيل كملف JSON.
- @puppeteer/replay. نزِّل التسجيل كنص برمجي Puppeteer Replay.
- محرك الدُمى: نزِّل التسجيل كنص برمجي Puppeteer.
- الدمى المتحركة (بما في ذلك تحليل Lighthouse): نزِّل التسجيل كنص برمجي Puppeteer مع تحليل Lighthouse مضمَّن.
- توفّر إضافات التصدير في تطبيق "المسجّلة الذكية" خيارًا واحدًا أو أكثر.
- احفظ الملف.
يمكنك إجراء ما يلي مع كل خيار تصدير تلقائي:
- JSON عدِّل كائن JSON الذي يمكن لشخص عادي قراءته واستورد ملف JSON مرة أخرى إلى المسجّلة الذكية.
- @puppeteer/replay. أعِد تشغيل النص البرمجي في مكتبة Puppeteer Replay. عند التصدير كنص برمجي @puppeteer/replay، تظل الخطوات عبارة عن كائن JSON. هذا الخيار مثالي إذا أردت إجراء التكامل مع مسار CI/CD، ولكن لا تزال لديك المرونة في تعديل الخطوات كملف JSON، ثم تحويلها واستيرادها في وقت لاحق إلى المسجّلة الذكية.
- النص البرمجي Puppeteer: أعِد تشغيل النص البرمجي باستخدام Puppeteer. ونظرًا لأنه يتم تحويل الخطوات إلى JavaScript، يمكنك الحصول على تخصيص أكثر دقة، مثل تكرار الخطوات. يُرجى العِلم بأنّه لا يمكنك استيراد هذا النص البرمجي مرة أخرى إلى المسجّلة الذكية.
الدمى المتحركة (بما في ذلك تحليل Lighthouse): خيار التصدير هذا مماثل للخيار السابق، ولكنّه يتضمّن رمزًا برمجيًا ينشئ تحليل Lighthouse.
شغِّل النص البرمجي واطّلِع على النتيجة في ملف
flow.report.html
:# npm i puppeteer lighthouse node your_export.js
التصدير بتنسيق مخصّص عن طريق تثبيت إضافة
يُرجى الاطّلاع على إضافات المسجّلة الذكية.
استيراد تدفق المستخدم
لاستيراد تدفق مستخدم:
- انقر على الزر استيراد في أعلى لوحة المسجّلة الذكية.
- اختَر ملف JSON الذي يحتوي على مسار المستخدم المسجَّل.
- انقر على الزر إعادة التشغيل لتشغيل مسار المستخدم الذي تم استيراده.
إعادة التشغيل باستخدام مكتبات خارجية
Puppeteer Replay هي مكتبة مفتوحة المصدر يديرها فريق "أدوات مطوري البرامج في Chrome". وهي تستند إلى Puppeteer. وهو أداة سطر أوامر، ويمكنك إعادة تشغيل ملفات JSON باستخدامها.
بالإضافة إلى ذلك، يمكنك تحويل ملفات JSON وإعادة تشغيلها باستخدام مكتبات الجهات الخارجية التالية.
تحويل مسارات مستخدم JSON إلى نصوص برمجية مخصّصة:
- مسجّلة ذكية في Chrome ويمكنك استخدامها لتحويل ملفات JSON لتدفق المستخدم إلى نصوص برمجية لاختبار Cypress. يمكنك مشاهدة هذا العرض التوضيحي لتجربته.
- مسجّلة Chrome لساعة الليل ويمكنك استخدامها لتحويل ملفات JSON لتدفق المستخدم إلى نصوص اختبارية لساعة Nightwatch.
- مسجّلة Chrome من CodeceptJS: ويمكنك استخدامها لتحويل ملفات JSON لتدفق المستخدم إلى نصوص برمجية لاختبار CodeceptJS.
إعادة تشغيل مسارات مستخدم JSON:
- إعادة اللعب باستخدام Testcafe: يمكنك استخدام TestCafe لإعادة تشغيل ملفات JSON لتدفق المستخدم وإنشاء تقارير اختبار لهذه التسجيلات.
- إعادة التشغيل باستخدام Sauce Labs. يمكنك إعادة تشغيل ملفات JSON في Sauce Labs باستخدام saucectl.
تصحيح أخطاء مسارات المستخدم
كما هو الحال مع أي رمز برمجي، عليك أحيانًا تصحيح أخطاء مسارات المستخدم المسجَّلة.
لمساعدتك في تصحيح الأخطاء، تتيح لك لوحة المسجّلة الذكية إبطاء عمليات إعادة التشغيل، وتحديد نقاط التوقف، وخطوات التنفيذ، وفحص الرموز البرمجية بتنسيقات مختلفة بالتوازي مع الخطوات.
إبطاء عملية إعادة التشغيل
بشكل تلقائي، تعيد أداة المسجّلة الذكية تشغيل تدفق المستخدم بأسرع ما يمكن. لفهم ما يحدث في التسجيل، يمكنك إبطاء سرعة إعادة التشغيل باتّباع الخطوات التالية:
- افتح القائمة المنسدلة إعادة التشغيل.
- حدِّد أحد خيارات سرعة إعادة التشغيل:
- عادية (تلقائي)
- بطيئة
- بطيء للغاية
- بطيء للغاية
فحص الرمز البرمجي
لفحص التعليمات البرمجية لتدفق المستخدم بتنسيقات مختلفة:
- افتح أحد التسجيلات في لوحة المسجّلة الذكية.
- انقر على عرض الرمز في أعلى يسار قائمة الخطوات.
- تعرض المسجّلة الذكية عرضًا جنبًا إلى جنب للخطوات ورمزها.
- أثناء تمرير مؤشر الماوس فوق إحدى الخطوات، تُميِّز المسجّلة الذكية الرمز الخاص بها بأي تنسيق، بما في ذلك الرموز التي توفِّرها الإضافات.
وسِّع القائمة المنسدلة للتنسيقات لاختيار التنسيق الذي تستخدمه في تصدير مسارات المستخدمين.
ويمكن أن يكون أحد التنسيقات الثلاثة الافتراضية (JSON أو @puppeteer/replay أو Puppeteer script أو أحد التنسيقات التي توفرها الإضافة.
تابِع لتصحيح أخطاء التسجيل من خلال تعديل مَعلمات الخطوات وقيمها. لا يمكن تعديل عرض الرمز، ولكن يتم تحديثه وفقًا لذلك عند إجراء تغييرات على الخطوات على اليمين.
تحديد نقاط الإيقاف وتنفيذها خطوة بخطوة
لتحديد نقطة توقف وتنفيذها خطوة بخطوة:
- مرِّر مؤشر الماوس فوق الدائرة "" بجانب أي خطوة في التسجيل. تتحول الدائرة إلى رمز نقطة توقف .
- انقر على رمز نقطة الإيقاف وإعادة تشغيل التسجيل. تتوقف عمليات التنفيذ مؤقتًا عند نقطة الإيقاف.
- لإكمال عملية التنفيذ، انقر على الزر تنفيذ خطوة واحدة في شريط الإجراءات أعلى لوحة المسجّلة الذكية.
- لإيقاف إعادة التشغيل، انقر على إلغاء إعادة التشغيل.
تعديل الخطوات
يمكنك تعديل أي خطوة في التسجيل من خلال النقر على الزر بجانبها، سواء أثناء التسجيل أو بعده.
يمكنك أيضًا إضافة الخطوات الناقصة وإزالة الخطوات التي يتم تسجيلها بدون قصد.
إضافة خطوات
وقد تحتاج أحيانًا إلى إضافة الخطوات يدويًا. على سبيل المثال، لا يلتقط المسجّلة الذكية أحداث hover
تلقائيًا لأنّ هذا يؤدي إلى تلوث التسجيل وليست جميع هذه الأحداث مفيدة. في المقابل، قد لا تظهر عناصر واجهة المستخدم، مثل القوائم المنسدلة، إلّا على hover
. يمكنك إضافة hover
خطوات يدويًا إلى مسارات المستخدمين التي تعتمد على هذه العناصر.
لإضافة خطوة يدويًا:
- افتح صفحة العرض التوضيحي هذه وابدأ تسجيلاً جديدًا.
- مرِّر مؤشر الماوس فوق العنصر في إطار العرض. ستظهر قائمة إجراءات منبثقة.
- اختَر إجراءً من القائمة ثم أنهِ التسجيل. تلتقط المسجّلة الذكية حدث النقر فقط.
- حاول إعادة تشغيل التسجيل من خلال النقر على إعادة تشغيل. وتتعذّر إعادة التشغيل بعد انتهاء المهلة لأنّ المسجّلة لا يمكنها الوصول إلى العنصر في القائمة.
- انقر على زر النقاط الثلاث بجانب الخطوة انقر واختَر إضافة خطوة قبل.
- وسِّع الخطوة الجديدة. ويكون نوع العمود
waitForElement
تلقائيًا. انقر على القيمة بجانبtype
واختَرhover
. - بعد ذلك، عيِّن أداة اختيار مناسبة للخطوة الجديدة. انقر على اختيار، ثم انقر على منطقة في العنصر
Hover over me!
خارج القائمة المنبثقة. تم ضبط أداة الاختيار على#clickable
. - يُرجى إعادة تشغيل التسجيل مرة أخرى. مع خطوة التمرير الإضافية، تعيد أداة المسجّلة الذكية تشغيل المسار بنجاح.
إضافة تأكيدات
أثناء التسجيل، يمكنك تأكيد سمات HTML وسمات JavaScript مثلاً. لإضافة تأكيد:
- يمكنك بدء تسجيل، مثلاً، في صفحة الإصدار التجريبي هذه.
انقر على إضافة تأكيد.
تنشئ المسجّلة الذكية خطوة
waitForElement
قابلة للضبط.حدِّد أدوات الاختيار لهذه الخطوة.
عليك ضبط الخطوة مع عدم تغيير نوعها من النوع
waitForElement
. على سبيل المثال، يمكنك تحديد ما يلي:- سمة HTML: انقر على إضافة سمات واكتب اسم السمة والقيمة التي تستخدمها العناصر في هذه الصفحة. مثلاً:
data-test: <value>
- سمة JavaScript: انقر على إضافة المواقع واكتب اسم الموقع وقيمته بتنسيق JSON. مثلاً:
{".innerText":"<text>"}
- خصائص الخطوات الأخرى: مثلاً:
visible: true
- سمة HTML: انقر على إضافة سمات واكتب اسم السمة والقيمة التي تستخدمها العناصر في هذه الصفحة. مثلاً:
تابع لتسجيل بقية تدفق المستخدم ثم أوقف التسجيل.
انقر على رمز إعادة التشغيل. إذا تعذّر تأكيد البيانات، تعرض المسجّلة الذكية رسالة خطأ بعد مهلة.
شاهِد الفيديو التالي للاطّلاع على سير العمل هذا.
نسخ الخطوات
بدلاً من تصدير تدفق المستخدم بالكامل، يمكنك نسخ خطوة واحدة إلى الحافظة:
- انقر بزر الماوس الأيمن على الخطوة التي تريد نسخها أو انقر على رمز النقاط الثلاث بجانبها.
- في القائمة المنسدلة، اختَر أحد خيارات نسخ بتنسيق ....
يمكنك نسخ الخطوات بتنسيقات مختلفة: JSON وPuppeteer و@puppeteer/replay وتلك التي توفّرها الإضافات.
إزالة الخطوات
لإزالة خطوة تم تسجيلها عن طريق الخطأ، انقر بزر الماوس الأيمن على الخطوة أو انقر على رمز النقاط الثلاث بجانبها واختَر إزالة الخطوة.
بالإضافة إلى ذلك، تضيف المسجّلة الذكية تلقائيًا خطوتَين منفصلتَين إلى بداية كل تسجيل:
- تعيين إطار العرض. تتيح لك هذه الميزة التحكّم في أبعاد إطار العرض وحجمه والخصائص الأخرى.
- التنقّل تضبط هذه السياسة عنوان URL وتُعيد تحميل الصفحة تلقائيًا مع كل عملية إعادة تشغيل.
لإجراء التشغيل الآلي في الصفحة بدون إعادة تحميل الصفحة، أزِل خطوة التنقّل كما هو موضّح أعلاه.
ضبط الخطوات
لضبط خطوة:
حدِّد نوع الصفحة:
click
أوdoubleClick
أوhover
أو (إدخال)change
أوkeyUp
أوkeyDown
أوscroll
أوclose
أوnavigate
(إلى صفحة) أوwaitForElement
أوwaitForExpression
أوsetViewport
.تعتمد السمات الأخرى على قيمة
type
.حدِّد السمات المطلوبة أسفل
type
.انقر على الأزرار المقابلة لإضافة خصائص اختيارية خاصة بالنوع وتحديدها.
للحصول على قائمة بالمواقع المتاحة، راجِع خصائص الخطوة.
لإزالة سمة اختيارية، انقر على زر إزالة بجانبها.
لإضافة عنصر إلى خاصية مصفوفة أو إزالتها منه، انقر على الزرَّين + أو - بجانب العنصر.
خصائص الخطوات
يمكن أن تحتوي كل خطوة على السمات الاختيارية التالية:
target
: عنوان URL لاستهداف بروتوكول أدوات مطوّري البرامج في Chrome، تشير الكلمة الرئيسية التلقائيةmain
إلى الصفحة الحالية.assertedEvents
التي يمكن أن تكون حاليًا حدثnavigation
واحد فقط
الخصائص الشائعة الأخرى المتاحة لمعظم أنواع الخطوات هي:
frame
- مصفوفة من الفهارس الصفرية التي تحدد إطار iframe يمكن دمجه. على سبيل المثال، يمكنك تحديد أول (0) إطار iframe أول (0) داخل إطار iframe ثانٍ (1) من الهدف الرئيسي على أنه[1, 0]
.timeout
: عدد المللي ثانية التي يجب الانتظار خلالها قبل تنفيذ الخطوة. لمزيد من المعلومات، يُرجى الاطّلاع على ضبط مهلات الخطوات.selectors
- مصفوفة من أدوات الاختيار. لمزيد من المعلومات، يُرجى الاطِّلاع على مقالة فهم أدوات الاختيار.
في ما يلي السمات الخاصة بالنوع:
النوع | الموقع | مطلوب | الوصف |
click doubleClick |
offsetX offsetY |
بالنسبة إلى الجانب العلوي الأيسر من مربع محتوى العنصر، بالبكسل | |
click doubleClick |
button |
زر المؤشر: أساسي | إضافية | ثانية | رجوع | إعادة توجيه | |
change |
value |
القيمة النهائية | |
keyDown keyUp |
key |
اسم المفتاح | |
scroll |
x y |
الانتقال المطلق في مواضع x وy بالبكسل، القيمة التلقائية 0 | |
navigate |
url |
عنوان URL المستهدف | |
waitForElement |
operator |
>= | == (تلقائي) | <= | |
waitForElement |
count |
عدد العناصر التي تم تحديدها بواسطة أداة الاختيار | |
waitForElement |
attributes |
سمة HTML وقيمتها | |
waitForElement |
properties |
سمة JavaScript وقيمتها بتنسيق JSON | |
waitForElement |
visible |
منطقي. صحيح إذا كان العنصر في DOM ومرئيًا (لا يحتوي على display: none أو visibility: hidden ) |
|
waitForElement waitForExpression |
asserted events |
حاليًا، type: navigation فقط ولكن يمكنك تحديد العنوان وعنوان URL |
|
waitForElement waitForExpression |
timeout |
الحد الأقصى لوقت الانتظار بالمللي ثانية | |
waitForExpression |
expression |
تعبير JavaScript يؤدي إلى true | |
setViewport |
width height |
عرض إطار العرض وارتفاعه بالبكسل | |
setViewport |
deviceScaleFactor |
تشبه نسبة وحدات البكسل إلى الجهاز (DPR)، القيمة التلقائية 1. | |
setViewport |
isMobile hasTouch isLandscape |
علامات منطقية تحدد ما إذا كان يجب: |
ثمة خاصيتان تؤديان إلى إيقاف إعادة التشغيل مؤقتًا:
تجعل السمة
waitForElement
الخطوة تنتظر وجود (أو عدم) عدد من العناصر التي تحدّدها أداة الاختيار. على سبيل المثال، تنتظر الخطوة التالية ظهور أقل من ثلاثة عناصر في الصفحة التي تتطابق مع أداة الاختيار.my-class
."type": "waitForElement", "selectors": [".my-class"], "operator": "<=", "count": 2,
تجعل السمة
waitForExpression
خطوة الانتظار حتى يتم ضبط تعبير JavaScript على "صحيح". على سبيل المثال، تتوقف الخطوة التالية مؤقتًا لمدة ثانيتين ثم يتم ضبطها على "صحيح" للسماح بمتابعة إعادة التشغيل."type": "waitForExpression", "expression": "new Promise(resolve => setTimeout(() => resolve(true), 2000))",
ضبط مهلات الخطوات
إذا كانت صفحتك تتضمن طلبات اتصال بطيئة أو صور متحركة مطولة، قد تتعذّر إعادة التشغيل عند تنفيذ خطوات تتجاوز المهلة التلقائية التي تبلغ 5000
ملي ثانية.
لتجنب هذه المشكلة، يمكنك ضبط المهلة التلقائية لكل خطوة في آنٍ واحد أو ضبط مهلات منفصلة لخطوات محددة. تؤدي المهلات المحدَّدة على خطوات معيّنة إلى استبدال الإعدادات التلقائية.
لضبط المهلة التلقائية لكل خطوة في آنٍ واحد:
انقر على إعدادات إعادة التشغيل لإتاحة تعديل مربّع المهلة.
في مربّع المهلة، اضبط قيمة المهلة بالملي ثانية.
انقر على إعادة التشغيل للاطّلاع على المهلة التلقائية المعدَّلة.
لاستبدال المهلة التلقائية في خطوة محدّدة:
عليك توسيع الخطوة والنقر على إضافة مهلة.
انقر على
timeout: <value>
واضبط القيمة بالملي ثانية.انقر على إعادة التشغيل للاطّلاع على الخطوة التي تتضمن المهلة أثناء العمل.
ولإزالة استبدال مهلة في خطوة معيّنة، انقر على الزر حذف بجانبها.
فهم أدوات الاختيار
عند بدء تسجيل جديد، يمكنك ضبط ما يلي:
- في مربّع النص سمة أداة الاختيار، أدخِل سمة اختبار مخصّصة. ستستخدم المسجّلة الذكية هذه السمة لرصد أدوات الاختيار بدلاً من قائمة سمات الاختبار الشائعة.
في مجموعة مربّعات الاختيار أنواع أدوات الاختيار المراد تسجيلها، اختَر أنواع أدوات الاختيار التي سيتم رصدها تلقائيًا:
- خدمة مقارنة الأسعار (CSS): أدوات الاختيار النحوية.
- ARIA أدوات الاختيار الدلالية
- نص أدوات الاختيار التي تتضمّن أقصر نص فريد إن توفّرت
- XPath. أدوات الاختيار التي تستخدم لغة مسار XML
- Pierce. أدوات اختيار مشابهة لعناصر CSS ولكن يمكن أن تخترق shadow DOM.
أدوات اختيار الاختبار الشائعة
بالنسبة إلى صفحات الويب البسيطة، تكفي سمات id
وسمات CSS class
لتتمكّن أداة المسجّلة الذكية من اكتشاف أدوات الاختيار. ومع ذلك، قد لا يكون هذا هو الحال دائمًا للأسباب التالية:
- قد تستخدم صفحات الويب صفوفًا أو أرقام تعريف ديناميكية متغيرة.
- قد تتعطّل أدوات الاختيار بسبب تغييرات في الرمز أو إطار العمل.
على سبيل المثال، قد يتم إنشاء قيم class
في CSS تلقائيًا للتطبيقات التي تم تطويرها باستخدام أطر عمل JavaScript حديثة (مثل React وAngular وVue) وأُطر عمل CSS.
وفي هذه الحالات، يمكنك استخدام سمات data-*
لإنشاء اختبارات أكثر مرونة. هناك حاليًا بعض أدوات اختيار data-*
الشائعة التي يستخدمها المطوّرون لإجراء التشغيل الآلي. وتتيح المسجّلة الذكية أيضًا استخدام تلك الأدوات.
في حال تحديد أدوات اختيار الاختبار الشائعة التالية على موقعك الإلكتروني، سترصدها المسجّلة الذكية تلقائيًا وتستخدمها أولاً:
data-testid
data-test
data-qa
data-cy
data-test-id
data-qa-id
data-testing
على سبيل المثال، افحص فلتر "Cappuccino" في صفحة العرض التوضيحي هذه والاطّلاع على سمات الاختبار:
سجِّل نقرة على "Cappuccino"، ووسِّع الخطوة المقابلة في التسجيل، وتحقّق من أدوات الاختيار التي تم رصدها:
تخصيص أداة اختيار التسجيل
يمكنك تخصيص أداة اختيار التسجيل إذا كانت أدوات اختيار الاختبار الشائعة لا تناسبك.
على سبيل المثال، تستخدم صفحة الإصدار التجريبي هذه السمة data-automate
كأداة اختيار. ابدأ تسجيلاً جديدًا وأدخِل data-automate
كسمة أداة الاختيار.
أدخِل عنوان بريد إلكتروني ولاحظ قيمة أداة الاختيار ([data-automate=email-address]
).
أولوية أداة الاختيار
تبحث المسجّلة الذكية عن أدوات الاختيار بالترتيب التالي بناءً على ما إذا حددت سمة أداة اختيار لغة CSS مخصّصة:
- في حال تحديد ما يلي:
- أداة اختيار لغة CSS مع سمة CSS المخصّصة:
- أدوات اختيار XPath.
- أداة اختيار ARIA في حال العثور عليها
- أداة اختيار تضم أقصر نص فريد في حال العثور عليها.
- إذا لم يتم تحديده:
- أداة اختيار ARIA في حال العثور عليها
- أدوات اختيار لغة CSS ذات الأولوية التالية:
- السمات الأكثر شيوعًا المستخدمة للاختبار:
data-testid
data-test
data-qa
data-cy
data-test-id
data-qa-id
data-testing
- سمات رقم التعريف، مثل
<div id="some_ID">
. - أدوات اختيار لغة CSS العادية.
- السمات الأكثر شيوعًا المستخدمة للاختبار:
- أدوات اختيار XPath.
- أدوات اختيار الثقوب.
- أداة اختيار تضم أقصر نص فريد في حال العثور عليها.
يمكن أن تكون هناك أدوات اختيار متعددة عادية لـ CSS وXPath وPirce. تسجِّل المسجّلة ما يلي:
- محددات CSS وXPath العادية في كل مستوى جذر، أي مضيفات الظل المدمجة، إن وجدت.
- تحديد محددات البيانات الفريدة بين جميع العناصر داخل كل جذور الظل