Vai al contenuto principale

ocrSetValue

Invia una sequenza di tasti a un elemento. Farà:

  • rilevare automaticamente l'elemento
  • mettere il focus sul campo cliccandoci sopra
  • impostare il valore nel campo

Il comando cercherà il testo fornito e tenterà di trovare una corrispondenza basata sulla Logica Fuzzy di Fuse.js. Questo significa che se potresti fornire un selettore con un errore di battitura, o il testo trovato potrebbe non essere una corrispondenza al 100%, cercherà comunque di restituirti un elemento. Guarda i log qui sotto.

Utilizzo​

await brower.ocrSetValue({
text: "docs",
value: "specfileretries",
});

Output​

Logs​

[0-0] 2024-05-26T04:17:51.355Z INFO webdriver: COMMAND ocrSetValue(<object>)
......................
[0-0] 2024-05-26T04:17:52.356Z INFO @wdio/ocr-service:ocrGetElementPositionByText: We searched for the word "docs" and found one match "docs" with score "100%"

Opzioni​

text​

  • Tipo: string
  • Obbligatorio: sì

Il testo che vuoi cercare per cliccare sopra.

Esempio​

await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
});

value​

  • Tipo: string
  • Obbligatorio: sì

Valore da aggiungere.

Esempio​

await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
});

submitValue​

  • Tipo: boolean
  • Obbligatorio: no
  • Predefinito: false

Se il valore deve essere anche inviato nel campo di input. Ciò significa che un "INVIO" verrà inviato alla fine della stringa.

Esempio​

await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
submitValue: true,
});

clickDuration​

  • Tipo: number
  • Obbligatorio: no
  • Predefinito: 500 millisecondi

Questa è la durata del clic. Se vuoi puoi anche creare un "clic lungo" aumentando il tempo.

Esempio​

await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
clickDuration: 3000, // Questi sono 3 secondi
});

contrast​

  • Tipo: number
  • Obbligatorio: no
  • Predefinito: 0.25

Maggiore è il contrasto, più scura sarà l'immagine e viceversa. Questo può aiutare a trovare testo in un'immagine. Accetta valori tra -1 e 1.

Esempio​

await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
contrast: 0.5,
});

haystack​

  • Tipo: number
  • Obbligatorio: WebdriverIO.Element | ChainablePromiseElement | Rectangle

Questa è l'area di ricerca nello schermo in cui l'OCR deve cercare il testo. Può essere un elemento o un rettangolo contenente x, y, width e height

Esempio​

await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
haystack: $("elementSelector"),
});

// OPPURE
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
haystack: await $("elementSelector"),
});

// OPPURE
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
haystack: {
x: 10,
y: 50,
width: 300,
height: 75,
},
});

language​

  • Tipo: string
  • Obbligatorio: No
  • Predefinito: eng

La lingua che Tesseract riconoscerà. Maggiori informazioni possono essere trovate qui e le lingue supportate possono essere trovate qui.

Esempio​

import { SUPPORTED_OCR_LANGUAGES } from "@wdio/ocr-service";
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
// Usa l'olandese come lingua
language: SUPPORTED_OCR_LANGUAGES.DUTCH,
});

relativePosition​

  • Tipo: object
  • Obbligatorio: no

Puoi cliccare sullo schermo in relazione all'elemento corrispondente. Questo può essere fatto in base ai pixel relativi above, right, below o left dall'elemento corrispondente

nota

Le seguenti combinazioni sono consentite

  • proprietà singole
  • above + left o above + right
  • below + left o below + right

Le seguenti combinazioni NON sono consentite

  • above più below
  • left più right

relativePosition.above​

  • Tipo: number
  • Obbligatorio: no

Clicca x pixel sopra l'elemento corrispondente.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
relativePosition: {
above: 100,
},
});

relativePosition.right​

  • Tipo: number
  • Obbligatorio: no

Clicca x pixel a destra dell'elemento corrispondente.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
relativePosition: {
right: 100,
},
});

relativePosition.below​

  • Tipo: number
  • Obbligatorio: no

Clicca x pixel sotto l'elemento corrispondente.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
relativePosition: {
below: 100,
},
});

relativePosition.left​

  • Tipo: number
  • Obbligatorio: no

Clicca x pixel a sinistra dell'elemento corrispondente.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
relativePosition: {
left: 100,
},
});

fuzzyFindOptions​

Puoi modificare la logica fuzzy per trovare testo con le seguenti opzioni. Questo potrebbe aiutare a trovare una corrispondenza migliore

fuzzyFindOptions.distance​

  • Tipo: number
  • Obbligatorio: no
  • Predefinito: 100

Determina quanto vicina deve essere la corrispondenza alla posizione fuzzy (specificata da location). Una corrispondenza di lettera esatta che è lontana di un certo numero di caratteri dalla posizione fuzzy verrebbe considerata come una mancata corrispondenza completa. Una distanza di 0 richiede che la corrispondenza sia nella posizione esatta specificata. Una distanza di 1000 richiederebbe una corrispondenza perfetta entro 800 caratteri dalla posizione da trovare utilizzando una soglia di 0.8.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
fuzzyFindOptions: {
distance: 20,
},
});

fuzzyFindOptions.location​

  • Tipo: number
  • Obbligatorio: no
  • Predefinito: 0

Determina approssimativamente dove nel testo ci si aspetta di trovare il pattern.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
fuzzyFindOptions: {
location: 20,
},
});

fuzzyFindOptions.threshold​

  • Tipo: number
  • Obbligatorio: no
  • Predefinito: 0.6

A che punto l'algoritmo di corrispondenza si arrende. Una soglia di 0 richiede una corrispondenza perfetta (sia di lettere che di posizione), una soglia di 1.0 corrisponderebbe a qualsiasi cosa.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
fuzzyFindOptions: {
threshold: 0.8,
},
});

fuzzyFindOptions.isCaseSensitive​

  • Tipo: boolean
  • Obbligatorio: no
  • Predefinito: false

Se la ricerca dovrebbe essere sensibile alle maiuscole.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
fuzzyFindOptions: {
isCaseSensitive: true,
},
});

fuzzyFindOptions.minMatchCharLength​

  • Tipo: number
  • Obbligatorio: no
  • Predefinito: 2

Verranno restituite solo le corrispondenze la cui lunghezza supera questo valore. (Ad esempio, se vuoi ignorare le corrispondenze di un solo carattere nel risultato, impostalo a 2)

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
fuzzyFindOptions: {
minMatchCharLength: 5,
},
});

fuzzyFindOptions.findAllMatches​

  • Tipo: number
  • Obbligatorio: no
  • Predefinito: false

Quando è true, la funzione di corrispondenza continuerà fino alla fine di un pattern di ricerca anche se è già stata localizzata una corrispondenza perfetta nella stringa.

Esempio​
await browser.ocrSetValue({
text: "WebdriverIO",
value: "The Value",
fuzzyFindOptions: {
findAllMatches: 100,
},
});

Welcome! How can I help?

WebdriverIO AI Copilot