الأسئلة المتكررة
اختباراتي بطيئة جدًا
عندما تستخدم خدمة @wdio/ocr-service
فأنت لا تستخدمها لتسريع اختباراتك، بل تستخدمها لأنك تواجه صعوبة في تحديد موقع العناصر في تطبيق الويب/الجوال، وتريد طريقة أسهل لتحديد موقعها. وجميعنا نعلم على الأرجح أنه عندما تريد شيئًا، فإنك تفقد شيئًا آخر. ولكن... هناك طريقة لجعل @wdio/ocr-service
تعمل بشكل أسرع من المعتاد. يمكن العثور على مزيد من المعلومات حول ذلك هنا.
هل يمكنني استخدام أوامر هذه الخدمة مع أوامر/محددات WebdriverIO الافتراضية؟
نعم، يمكنك الجمع بين الأوامر لجعل البرنامج النصي الخاص بك أكثر قوة! النصيحة هي استخدام أوامر/محددات WebdriverIO الافتراضية قدر الإمكان واستخدام هذه الخدمة فقط عندما لا تتمكن من العثور على محدد فريد، أو عندما يكون المحدد الخاص بك هشًا للغاية.
لم يتم العثور على النص الخاص بي، كيف يمكن ذلك؟
أولاً، من المهم فهم كيفية عمل عملية التعرف البصري على النصوص (OCR) في هذه الوحدة، لذا يرجى قراءة هذه الصفحة. إذا كنت ما زلت غير قادر على العثور على النص الخاص بك، فقد تحاول الأشياء التالية.
منطقة الصورة كبيرة جدًا
عندما تحتاج الوحدة إلى معالجة منطقة كبيرة من لقطة الشاشة، قد لا تتمكن من العثور على النص. يمكنك توفير منطقة أصغر من خلال تقديم haystack عند استخدام أمر. يرجى التحقق من الأوامر التي تدعم توفير haystack.
التباين بين النص والخلفية غير صحيح
هذا يعني أنه قد يكون لديك نص فاتح على خلفية بيضاء أو نص داكن على خلفية داكنة. يمكن أن يؤدي ذلك إلى عدم القدرة على العثور على النص. في الأمثلة أدناه، يمكنك أن ترى أن النص Why WebdriverIO?
أبيض ومحاط بزر رمادي. في هذه الحالة، سيؤدي ذلك إلى عدم العثور على نص Why WebdriverIO?
. من خلال زيادة التباين للأمر المحدد، يتم العثور على النص ويمكن النقر عليه، انظر الصورة الثانية.
await driver.ocrClickOnText({
haystack: { height: 44, width: 1108, x: 129, y: 590 },
text: "WebdriverIO?",
// // With the default contrast of 0.25, the text is not found
contrast: 1,
});
لماذا يتم النقر على العنصر الخاص بي ولكن لوحة المفاتيح على أجهزة الجوال الخاصة بي لا تظهر أبدًا؟
يمكن أن يحدث هذا في بعض حقول النص حيث يتم اعتبار النقرة طويلة جدًا وتعتبر نقرة طويلة. يمكنك استخدام خيار clickDuration
على ocrClickOnText
و ocrSetValue
للتخفيف من ذلك. انظر هنا.
هل يمكن لهذه الوحدة أن تقدم عناصر متعددة كما يمكن أن يفعل WebdriverIO عادة؟
لا، هذا غير ممكن حاليًا. إذا وجدت الوحدة عناصر متعددة تطابق المحدد المقدم، فستجد تلقائيًا العنصر الذي له أعلى درجة تطابق.
هل يمكنني أتمتة تطبيقي بالكامل باستخدام أوامر OCR التي توفرها هذه الخدمة؟
لم أفعل ذلك من قبل، ولكن من الناحية النظرية، يجب أن يكون ذلك ممكنًا. يرجى إخبارنا إذا نجحت في ذلك ☺️.