@wdio/ocr-service 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +161 -0
- package/dist/cli.js +36 -59
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +10 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,166 @@
|
|
|
1
1
|
# @wdio/ocr-service
|
|
2
2
|
|
|
3
|
+
## 1.0.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 0b01b64: ### @wdio/visual-service
|
|
8
|
+
|
|
9
|
+
#### 🚀 New Features
|
|
10
|
+
|
|
11
|
+
**Added Reporting output**
|
|
12
|
+
You now have the option to export the compare results into a JSON report file. By enabling the module option `createJsonReportFiles: true`, each image that is compared will create a report stored in the `actual` folder, next to each `actual` image result.
|
|
13
|
+
|
|
14
|
+
The output will look like this:
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"parent": "check methods",
|
|
19
|
+
"test": "should fail comparing with a baseline",
|
|
20
|
+
"tag": "examplePageFail",
|
|
21
|
+
"instanceData": {
|
|
22
|
+
"browser": {
|
|
23
|
+
"name": "chrome-headless-shell",
|
|
24
|
+
"version": "126.0.6478.183"
|
|
25
|
+
},
|
|
26
|
+
"platform": {
|
|
27
|
+
"name": "mac",
|
|
28
|
+
"version": "not-known"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"commandName": "checkScreen",
|
|
32
|
+
"boundingBoxes": {
|
|
33
|
+
"diffBoundingBoxes": [
|
|
34
|
+
{
|
|
35
|
+
"left": 1088,
|
|
36
|
+
"top": 717,
|
|
37
|
+
"right": 1186,
|
|
38
|
+
"bottom": 730
|
|
39
|
+
}
|
|
40
|
+
//....
|
|
41
|
+
],
|
|
42
|
+
"ignoredBoxes": [
|
|
43
|
+
{
|
|
44
|
+
"left": 159,
|
|
45
|
+
"top": 652,
|
|
46
|
+
"right": 356,
|
|
47
|
+
"bottom": 703
|
|
48
|
+
}
|
|
49
|
+
//...
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"fileData": {
|
|
53
|
+
"actualFilePath": "/Users/wswebcreation/Git/wdio/visual-testing/.tmp/actual/desktop_chrome-headless-shellexamplePageFail-local-chrome-latest-1366x768.png",
|
|
54
|
+
"baselineFilePath": "/Users/wswebcreation/Git/wdio/visual-testing/localBaseline/desktop_chrome-headless-shellexamplePageFail-local-chrome-latest-1366x768.png",
|
|
55
|
+
"diffFilePath": "/Users/wswebcreation/Git/wdio/visual-testing/.tmp/diff/desktop_chrome-headless-shell/examplePageFail-local-chrome-latest-1366x768png",
|
|
56
|
+
"fileName": "examplePageFail-local-chrome-latest-1366x768.png",
|
|
57
|
+
"size": {
|
|
58
|
+
"actual": {
|
|
59
|
+
"height": 768,
|
|
60
|
+
"width": 1366
|
|
61
|
+
},
|
|
62
|
+
"baseline": {
|
|
63
|
+
"height": 768,
|
|
64
|
+
"width": 1366
|
|
65
|
+
},
|
|
66
|
+
"diff": {
|
|
67
|
+
"height": 768,
|
|
68
|
+
"width": 1366
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"misMatchPercentage": "12.90",
|
|
73
|
+
"rawMisMatchPercentage": 12.900729014153246
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
When all tests are executed, a new JSON file with the collection of the comparisons will be generated and can be found in the root of your actual folder. The data is grouped by:
|
|
78
|
+
|
|
79
|
+
- `describe` for Jasmine/Mocha or `Feature` for CucumberJS
|
|
80
|
+
- `it` for Jasmine/Mocha or `Scenario` for CucumberJS
|
|
81
|
+
|
|
82
|
+
and then sorted by:
|
|
83
|
+
|
|
84
|
+
- `commandName`, which are the compare method names used to compare the images
|
|
85
|
+
- `instanceData`, browser first, then device, then platform
|
|
86
|
+
|
|
87
|
+
it will look like this
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
[
|
|
91
|
+
{
|
|
92
|
+
"description": "check methods",
|
|
93
|
+
"data": [
|
|
94
|
+
{
|
|
95
|
+
"test": "should fail comparing with a baseline",
|
|
96
|
+
"data": [
|
|
97
|
+
{
|
|
98
|
+
"tag": "examplePageFail",
|
|
99
|
+
"instanceData": {},
|
|
100
|
+
"commandName": "checkScreen",
|
|
101
|
+
"framework": "mocha",
|
|
102
|
+
"boundingBoxes": {
|
|
103
|
+
"diffBoundingBoxes": [],
|
|
104
|
+
"ignoredBoxes": []
|
|
105
|
+
},
|
|
106
|
+
"fileData": {},
|
|
107
|
+
"misMatchPercentage": "14.34",
|
|
108
|
+
"rawMisMatchPercentage": 14.335403703025868
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"tag": "exampleElementFail",
|
|
112
|
+
"instanceData": {},
|
|
113
|
+
"commandName": "checkElement",
|
|
114
|
+
"framework": "mocha",
|
|
115
|
+
"boundingBoxes": {
|
|
116
|
+
"diffBoundingBoxes": [],
|
|
117
|
+
"ignoredBoxes": []
|
|
118
|
+
},
|
|
119
|
+
"fileData": {},
|
|
120
|
+
"misMatchPercentage": "1.34",
|
|
121
|
+
"rawMisMatchPercentage": 1.335403703025868
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
The report data will give you the opportunity to build your own visual report without doing all the magic and data collection yourself.
|
|
131
|
+
|
|
132
|
+
### webdriver-image-comparison
|
|
133
|
+
|
|
134
|
+
#### 🚀 New Features
|
|
135
|
+
|
|
136
|
+
- Add support to generate single JSON report files
|
|
137
|
+
|
|
138
|
+
### @wdio/ocr-service
|
|
139
|
+
|
|
140
|
+
#### 💅 Polish
|
|
141
|
+
|
|
142
|
+
- Refactored the CLI to use `@inquirer/prompts` instead of `inquirer`
|
|
143
|
+
|
|
144
|
+
### Committers: 1
|
|
145
|
+
|
|
146
|
+
- Wim Selles ([@wswebcreation](https://github.com/wswebcreation))
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## 1.0.3
|
|
153
|
+
|
|
154
|
+
### Patch Changes
|
|
155
|
+
|
|
156
|
+
# 💅 Polish
|
|
157
|
+
|
|
158
|
+
Update deps
|
|
159
|
+
|
|
160
|
+
# Committers: 1
|
|
161
|
+
|
|
162
|
+
- Wim Selles ([@wswebcreation](https://github.com/wswebcreation))
|
|
163
|
+
|
|
3
164
|
## 1.0.2
|
|
4
165
|
|
|
5
166
|
### Patch Changes
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
2
|
+
import { input, confirm, select } from '@inquirer/prompts';
|
|
3
3
|
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
4
4
|
import { join, resolve } from 'node:path';
|
|
5
5
|
import getData from './utils/getData.js';
|
|
@@ -46,19 +46,17 @@ function listFilesAndFolders(folderPath) {
|
|
|
46
46
|
async function chooseFolder(currentPath) {
|
|
47
47
|
async function prompt(srcPath) {
|
|
48
48
|
const choices = listFilesAndFolders(srcPath);
|
|
49
|
-
const answers = await
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const newPath = join(srcPath, answers.path);
|
|
56
|
-
if (answers.path === '..') {
|
|
49
|
+
const answers = await select({
|
|
50
|
+
message: `Please choose a folder (current folder: ${srcPath})`,
|
|
51
|
+
choices: choices
|
|
52
|
+
});
|
|
53
|
+
const newPath = join(srcPath, answers);
|
|
54
|
+
if (answers === '..') {
|
|
57
55
|
// Clears the previous line
|
|
58
56
|
process.stdout.write('\u001b[1A\u001b[2K');
|
|
59
57
|
return prompt(newPath);
|
|
60
58
|
}
|
|
61
|
-
if (answers.
|
|
59
|
+
if (answers.endsWith('/')) {
|
|
62
60
|
// Clears the previous line
|
|
63
61
|
process.stdout.write('\u001b[1A\u001b[2K');
|
|
64
62
|
return prompt(newPath);
|
|
@@ -77,86 +75,65 @@ async function main() {
|
|
|
77
75
|
};
|
|
78
76
|
let filePath;
|
|
79
77
|
console.log(CONFIG_HELPER_INTRO);
|
|
80
|
-
const initialChoice = await
|
|
81
|
-
type: 'list',
|
|
82
|
-
name: 'method',
|
|
78
|
+
const initialChoice = await select({
|
|
83
79
|
message: 'How would you like to specify the file?',
|
|
84
80
|
choices: [
|
|
85
|
-
{ name: 'Use a "file explorer"', value: 'explore' },
|
|
86
|
-
{ name: 'Type the file path manually', value: 'type' },
|
|
81
|
+
{ name: 'Use a "file explorer"', value: { method: 'explore' } },
|
|
82
|
+
{ name: 'Type the file path manually', value: { method: 'type' } },
|
|
87
83
|
],
|
|
88
84
|
});
|
|
89
85
|
if (initialChoice.method === 'explore') {
|
|
90
86
|
filePath = await chooseFolder(currentPath);
|
|
91
87
|
}
|
|
92
88
|
else {
|
|
93
|
-
const pathInput = await
|
|
94
|
-
type: 'input',
|
|
95
|
-
name: 'path',
|
|
89
|
+
const pathInput = await input({
|
|
96
90
|
message: 'Please enter the file path:',
|
|
97
91
|
});
|
|
98
|
-
filePath = pathInput
|
|
92
|
+
filePath = pathInput;
|
|
99
93
|
}
|
|
100
|
-
const useHaystack = await
|
|
101
|
-
type: 'confirm',
|
|
102
|
-
name: 'use',
|
|
94
|
+
const useHaystack = await confirm({
|
|
103
95
|
message: 'Would you like to use a haystack?',
|
|
104
96
|
});
|
|
105
97
|
let haystack;
|
|
106
|
-
if (useHaystack
|
|
107
|
-
const
|
|
108
|
-
type: 'input',
|
|
109
|
-
name: 'x',
|
|
98
|
+
if (useHaystack) {
|
|
99
|
+
const x = await input({
|
|
110
100
|
message: 'Enter the x coordinate:',
|
|
111
|
-
|
|
101
|
+
validate: (input) => isNaN(Number(input)) ? 'Please enter a valid number' : true,
|
|
112
102
|
});
|
|
113
|
-
const
|
|
114
|
-
type: 'input',
|
|
115
|
-
name: 'y',
|
|
103
|
+
const y = await input({
|
|
116
104
|
message: 'Enter the y coordinate:',
|
|
117
|
-
|
|
105
|
+
validate: (input) => isNaN(Number(input)) ? 'Please enter a valid number' : true,
|
|
118
106
|
});
|
|
119
|
-
const
|
|
120
|
-
type: 'input',
|
|
121
|
-
name: 'width',
|
|
107
|
+
const width = await input({
|
|
122
108
|
message: 'Enter the width:',
|
|
123
|
-
|
|
109
|
+
validate: (input) => isNaN(Number(input)) ? 'Please enter a valid number' : true,
|
|
124
110
|
});
|
|
125
|
-
const
|
|
126
|
-
type: 'input',
|
|
127
|
-
name: 'height',
|
|
111
|
+
const height = await input({
|
|
128
112
|
message: 'Enter the height:',
|
|
129
|
-
|
|
113
|
+
validate: (input) => isNaN(Number(input)) ? 'Please enter a valid number' : true,
|
|
130
114
|
});
|
|
131
|
-
haystack = { x, y, width, height };
|
|
115
|
+
haystack = { x: Number(x), y: Number(y), width: Number(width), height: Number(height) };
|
|
132
116
|
}
|
|
133
117
|
let options = {
|
|
134
118
|
...defaultOptions,
|
|
135
|
-
|
|
119
|
+
haystack,
|
|
136
120
|
cliFile: convertFileToBase64(filePath),
|
|
137
121
|
};
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
message: 'Do you want to use the advanced mode?',
|
|
142
|
-
}]);
|
|
122
|
+
const useAdvanced = await confirm({
|
|
123
|
+
message: 'Do you want to use the advanced mode?',
|
|
124
|
+
});
|
|
143
125
|
if (useAdvanced) {
|
|
144
|
-
const advancedOptions = await
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
validate: (input) => {
|
|
151
|
-
const value = parseFloat(input);
|
|
152
|
-
return (value >= 0.0 && value <= 1.0) || 'Please enter a contrast between 0.0 and 1.0';
|
|
153
|
-
},
|
|
154
|
-
filter: (input) => input ? parseFloat(input) : defaultOptions.contrast
|
|
126
|
+
const advancedOptions = await input({
|
|
127
|
+
message: 'Enter new contrast (0.0 - 1.0):',
|
|
128
|
+
default: defaultOptions.contrast.toString(),
|
|
129
|
+
validate: (input) => {
|
|
130
|
+
const value = parseFloat(input);
|
|
131
|
+
return (value >= 0.0 && value <= 1.0) || 'Please enter a contrast between 0.0 and 1.0';
|
|
155
132
|
},
|
|
156
|
-
|
|
133
|
+
});
|
|
157
134
|
options = {
|
|
158
135
|
...options,
|
|
159
|
-
contrast: advancedOptions
|
|
136
|
+
contrast: parseFloat(advancedOptions),
|
|
160
137
|
};
|
|
161
138
|
}
|
|
162
139
|
console.log('\nProcessing image...\n');
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,EACR,kBAAkB,EAClB,+BAA+B,EAC/B,cAAc,EACd,2BAA2B,EAC3B,eAAe,EACf,2BAA2B,EAC9B,MAAM,YAAY,CAAA;AAGnB,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,OAAO;YACb;;eAEG;YACH,UAAU,CACN,OAAO,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;YAEnB;;eAEG;YACH,2BAA2B,CACvB,OAAO,EAAE,+BAA+B,GACzC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAExC;;eAEG;YACH,cAAc,CACV,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;YAEjB;;eAEG;YACH,WAAW,CACP,OAAO,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;YAEjB;;eAEG;YACH,uBAAuB,CACnB,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,IAAI,CAAC,CAAC;SACpB;QACD,UAAU,OAAO;SAAI;KACxB;CACJ;AAED,eAAe,cAAc,CAAA;AAC7B,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,EACR,kBAAkB,EAClB,+BAA+B,EAC/B,cAAc,EACd,2BAA2B,EAC3B,eAAe,EACf,2BAA2B,EAC9B,MAAM,YAAY,CAAA;AAGnB,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,OAAO;YACb;;eAEG;YACH,UAAU,CACN,OAAO,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;YAEnB;;eAEG;YACH,2BAA2B,CACvB,OAAO,EAAE,+BAA+B,GACzC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAExC;;eAEG;YACH,cAAc,CACV,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;YAEjB;;eAEG;YACH,WAAW,CACP,OAAO,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;YAEjB;;eAEG;YACH,uBAAuB,CACnB,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,IAAI,CAAC,CAAC;SACpB;QACD,UAAU,OAAO;SAAI;KACxB;CACJ;AAED,eAAe,cAAc,CAAA;AAC7B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAsB,CAAA"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="./standalone.js" />
|
|
2
1
|
import type { ClickPoint, DetermineClickPointOptions, Rectangles, RectReturn, ScreenshotSize } from '../types.js';
|
|
3
2
|
export declare function getScreenshotSize(screenshot: string): ScreenshotSize;
|
|
4
3
|
export declare function getDprPositions(values: Rectangles, dpr: number): Rectangles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAKpE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAO3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,UAAU,CAMnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,GAAG,UAAU,CAOvF;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,GAAG,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAM3G"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@wdio/ocr-service",
|
|
3
3
|
"author": "Wim Selles - wswebcreation",
|
|
4
4
|
"description": "A WebdriverIO service that is using Tesseract OCR for Desktop/Mobile Web and Mobile Native App tests.",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.4",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://webdriver.io/docs/visual-testing",
|
|
8
8
|
"repository": {
|
|
@@ -22,20 +22,24 @@
|
|
|
22
22
|
"type": "module",
|
|
23
23
|
"types": "./dist/index.d.ts",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@wdio/globals": "^8.
|
|
26
|
-
"@wdio/logger": "^8.
|
|
27
|
-
"@wdio/types": "^8.
|
|
25
|
+
"@wdio/globals": "^8.39.1",
|
|
26
|
+
"@wdio/logger": "^8.38.0",
|
|
27
|
+
"@wdio/types": "^8.39.0",
|
|
28
28
|
"fuse.js": "^7.0.0",
|
|
29
|
-
"inquirer": "
|
|
29
|
+
"@inquirer/prompts": "5.2.0",
|
|
30
30
|
"jimp": "^0.22.12",
|
|
31
31
|
"node-tesseract-ocr": "^2.2.1",
|
|
32
32
|
"tesseract.js": "^5.1.0",
|
|
33
33
|
"xml2js": "^0.6.2"
|
|
34
34
|
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/inquirer": "~9.0.7",
|
|
37
|
+
"@types/xml2js": "~0.4.14"
|
|
38
|
+
},
|
|
35
39
|
"scripts": {
|
|
36
40
|
"build": "run-s clean build:*",
|
|
37
41
|
"build:tsc": "tsc --project ./tsconfig.json",
|
|
38
|
-
"clean": "rimraf coverage
|
|
42
|
+
"clean": "rimraf coverage dist .tmp",
|
|
39
43
|
"watch": "pnpm run build:tsc -w"
|
|
40
44
|
}
|
|
41
45
|
}
|