Bắt Đầu
Installation
Cách dễ nhất là giữ @wdio/ocr-service
như một dependency trong tệp package.json
của bạn.
- npm
- Yarn
- pnpm
npm install @wdio/ocr-service --save-dev
yarn add @wdio/ocr-service --dev
pnpm add @wdio/ocr-service --save-dev
Hướng dẫn cách cài đặt WebdriverIO
có thể được tìm thấy tại đây.
Module này sử dụng Tesseract làm engine OCR. Mặc định, nó sẽ kiểm tra xem bạn đã cài đặt Tesseract cục bộ trên hệ thống của mình chưa, nếu có, nó sẽ sử dụng phiên bản đó. Nếu không, nó sẽ sử dụng module Node.js Tesseract.js được cài đặt tự động cho bạn.
Nếu bạn muốn tăng tốc độ xử lý hình ảnh, lời khuyên là sử dụng phiên bản Tesseract được cài đặt cục bộ. Xem thêm Thời gian thực thi kiểm thử.
Hướng dẫn cách cài đặt Tesseract như một dependency hệ thống trên máy tính cục bộ của bạn có th ể được tìm thấy tại đây.
Đối với các câu hỏi/lỗi khi cài đặt Tesseract, vui lòng tham khảo dự án Tesseract.
Hỗ trợ Typescript
Đảm bảo rằng bạn thêm @wdio/ocr-service
vào tệp cấu hình tsconfig.json
của bạn.
{
"compilerOptions": {
"types": ["node", "@wdio/globals/types", "@wdio/ocr-service"]
}
}
Cấu hình
Để sử dụng dịch vụ này, bạn cần thêm ocr
vào mảng services trong wdio.conf.ts
// wdio.conf.js
exports.config = {
//...
services: [
// your other services
[
"ocr",
{
contrast: 0.25,
imagesFolder: ".tmp/",
language: "eng",
},
],
],
};
Tùy chọn cấu hình
contrast
- Loại:
number
- Bắt buộc: Không
- Mặc định:
0.25
Độ tương phản càng cao, hình ảnh càng tối và ngược lại. Điều này có thể giúp tìm văn bản trong hình ảnh. Nó chấp nhận giá trị từ -1
đến 1
.
imagesFolder
- Loại:
string
- Bắt buộc: Không
- Mặc định:
{project-root}/.tmp/ocr
Thư mục nơi lưu trữ kết quả OCR.
Nếu bạn cung cấp một imagesFolder
tùy chỉnh, thì dịch vụ sẽ tự động thêm thư mục con ocr
vào nó.
language
- Loại:
string
- Bắt buộc: Không
- Mặc định:
eng
Ngôn ngữ mà Tesseract sẽ nhận dạng. Thông tin thêm có thể được tìm thấy tại đây và các ngôn ngữ được hỗ trợ có thể được tìm thấy tại đây.
Logs
Module này sẽ tự động thêm các log bổ sung vào log của WebdriverIO. Nó ghi vào log INFO
và WARN
với tên @wdio/ocr-service
.
Các ví dụ có thể được tìm thấy dưới đây.
...............
[0-0] 2024-05-24T06:55:12.739Z INFO @wdio/ocr-service: Adding commands to global browser
[0-0] 2024-05-24T06:55:12.750Z INFO @wdio/ocr-service: Adding browser command "ocrGetText" to browser object
[0-0] 2024-05-24T06:55:12.751Z INFO @wdio/ocr-service: Adding browser command "ocrGetElementPositionByText" to browser object
[0-0] 2024-05-24T06:55:12.751Z INFO @wdio/ocr-service: Adding browser command "ocrWaitForTextDisplayed" to browser object
[0-0] 2024-05-24T06:55:12.751Z INFO @wdio/ocr-service: Adding browser command "ocrClickOnText" to browser object
[0-0] 2024-05-24T06:55:12.751Z INFO @wdio/ocr-service: Adding browser command "ocrSetValue" to browser object
...............
[0-0] 2024-05-24T06:55:13.667Z INFO @wdio/ocr-service:getData: Using system installed version of Tesseract
[0-0] 2024-05-24T06:55:14.019Z INFO @wdio/ocr-service:getData: It took '0.351s' to process the image.
[0-0] 2024-05-24T06:55:14.019Z INFO @wdio/ocr-service:getData: The following text was found through OCR:
[0-0]
[0-0] IQ Docs API Blog Contribute Community Sponsor Next-gen browser and mobile automation Welcome! How can | help? i test framework for Node.js Get Started Why WebdriverI0? View on GitHub Watch on YouTube
[0-0] 2024-05-24T06:55:14.019Z INFO @wdio/ocr-service:getData: OCR Image with found text can be found here:
[0-0]
[0-0] .tmp/ocr/desktop-1716533713585.png
[0-0] 2024-05-24T06:55:14.019Z INFO @wdio/ocr-service:ocrGetElementPositionByText: We searched for the word "Get Started" and found one match "Started" with score "63.64
...............