ocrGetElementPositionByText
موقعیت یک متن را در صفحه نمایش دریافت کنید. این دستور متن ارائه شده را جستجو کرده و سعی میکند بر اساس منطق فازی از Fuse.js یک تطابق پیدا کند. این بدان معناست که اگر انتخابگری با اشتباه تایپی ارائه دهید، یا متن یافت شده ممکن است ۱۰۰٪ مطابقت نداشته باشد، همچنان سعی میکند یک عنصر را به شما برگرداند. گزارشها را در زیر ببینید.
استفاده
const result = await browser.ocrGetElementPositionByText("Username");
console.log("result = ", JSON.stringify(result, null, 2));
خروجی
نتیجه
result = {
"dprPosition": {
"left": 373,
"top": 606,
"right": 439,
"bottom": 620
},
"filePath": ".tmp/ocr/desktop-1716658199410.png",
"matchedString": "Started",
"originalPosition": {
"left": 373,
"top": 606,
"right": 439,
"bottom": 620
},
"score": 85.71,
"searchValue": "Start3d"
}
گزارشها
# Still finding a match even though we searched for "Start3d" and the found text was "Started"
[0-0] 2024-05-25T17:29:59.179Z INFO webdriver: COMMAND ocrGetElementPositionByText(<object>)
......................
[0-0] 2024-05-25T17:29:59.993Z INFO @wdio/ocr-service:ocrGetElementPositionByText: Multiple matches were found based on the word "Start3d". The match "Started" with score "85.71%" will be used.
گزینهها
text
- نوع:
string
- اجباری: بله
متنی که میخواهید برای کلیک کردن جستجو کنید.
مثال
await browser.ocrGetElementPositionByText({ text: "WebdriverIO" });
contrast
- نوع:
number
- اجباری: خیر
- پیشفرض:
0.25
هر چه کنتراست بالاتر باشد، تصویر تیرهتر میشود و برعکس. این میتواند به یافتن متن در تصویر کمک کند. مقادیر بین -1
و 1
را میپذیرد.
مثال
await browser.ocrGetElementPositionByText({
text: "WebdriverIO",
contrast: 0.5,
});
haystack
- نوع:
number
- اجباری:
WebdriverIO.Element | ChainablePromiseElement | Rectangle
این منطقه جستجو در صفحه نمایش است که OCR باید برای متن جستجو کند. این میتواند یک عنصر یا یک مستطیل شامل x
، y
، width
و height
باشد.
مثال
await browser.ocrGetElementPositionByText({
text: "WebdriverIO",
haystack: $("elementSelector"),
});
// یا
await browser.ocrGetElementPositionByText({
text: "WebdriverIO",
haystack: await $("elementSelector"),
});
// یا
await browser.ocrGetElementPositionByText({
text: "WebdriverIO",
haystack: {
x: 10,
y: 50,
width: 300,
height: 75,
},
});
language
- نوع:
string
- اجباری: خیر
- پیشفرض:
eng
زبانی که Tesseract تشخیص میدهد. اطلاعات بیشتر را میتوان اینجا پیدا کرد و زبانهای پشتیبانی شده را میتوان اینجا یافت.
مثال
import { SUPPORTED_OCR_LANGUAGES } from "@wdio/ocr-service";
await browser.ocrGetElementPositionByText({
text: "WebdriverIO",
// استفاده از هلندی به عنوان زبان
language: SUPPORTED_OCR_LANGUAGES.DUTCH,
});
fuzzyFindOptions
شما میتوانید منطق فازی برای یافتن متن را با گزینههای زیر تغییر دهید. این ممکن است به یافتن تطابق بهتر کمک کند.
fuzzyFindOptions.distance
- نوع:
number
- اجباری: خیر
- پیشفرض: 100
تعیین میکند که تطابق چقدر باید به موقعیت فازی (مشخص شده توسط location) نزدیک باشد. یک تطابق دقیق حرف که به اندازه distance کاراکتر از موقعیت فازی دور است، به عنوان عدم تطابق کامل امتیازدهی میشود. فاصله 0 نیاز به تطابق در موقعیت دقیق مشخص شده دارد. فاصله 1000 نیاز به تطابق کامل در محدوده 800 کاراکتر از موقعیت برای یافتن با آستانه 0.8 خواهد داشت.
مثال
await browser.ocrGetElementPositionByText({
text: "WebdriverIO",
fuzzyFindOptions: {
distance: 20,
},
});