Często Zadawane Pytania
Moje testy są bardzo wolne
Kiedy korzystasz z @wdio/ocr-service
, nie używasz go do przyspieszenia testów, ale dlatego, że masz trudności z lokalizacją elementów w aplikacji internetowej/mobilnej i chcesz łatwiejszego sposobu na ich zlokalizowanie. I wszyscy mamy nadzieję, że wiemy, że gdy czegoś chcesz, coś innego tracisz. Ale..., istnieje sposób, aby @wdio/ocr-service
działał szybciej niż normalnie. Więcej informacji na ten temat można znaleźć tutaj.
Czy mogę używać poleceń z tej usługi z domyślnymi poleceniami/selektorami WebdriverIO?
Tak, możesz łączyć polecenia, aby uczynić swój skrypt jeszcze potężniejszym! Zaleca się używanie domyślnych poleceń/selektorów WebdriverIO tak często, jak to możliwe, i korzystanie z tej usługi tylko wtedy, gdy nie możesz znaleźć unikalnego selektora lub Twój selektor stanie się zbyt kruchy.
Mój tekst nie został znaleziony, jak to możliwe?
Po pierwsze, ważne jest zrozumienie, jak działa proces OCR w tym module, więc przeczytaj tę stronę. Jeśli nadal nie możesz znaleźć swojego tekstu, możesz spróbować następujących rzeczy.
Obszar obrazu jest zbyt duży
Gdy moduł musi przetworzyć duży obszar zrzutu ekranu, może nie znaleźć tekstu. Możesz zapewnić mniejszy obszar, dostarczając stos (haystack) podczas używania polecenia. Sprawdź polecenia, które obsługują dostarczanie stosu.
Kontrast między tekstem a tłem nie jest prawidłowy
Oznacza to, że możesz mieć jasny tekst na białym tle lub ciemny tekst na ciemnym tle. To może skutkować niemożnością znalezienia tekstu. W poniższych przykładach widzisz, że tekst Why WebdriverIO?
jest biały i otoczony szarym przyciskiem. W tym przypadku spowoduje to nieznalezienie tekstu Why WebdriverIO?
. Zwiększając kontrast dla konkretnego polecenia, znajdzie tekst i będzie mógł na niego kliknąć, zobacz drugi obraz.
await driver.ocrClickOnText({
haystack: { height: 44, width: 1108, x: 129, y: 590 },
text: "WebdriverIO?",
// // Z domyślnym kontrastem 0,25 tekst nie jest znajdowany
contrast: 1,
});
Dlaczego mój element zostaje kliknięty, ale klawiatura na moich urządzeniach mobilnych nigdy się nie pojawia?
Może to wystąpić w niektórych polach tekstowych, gdzie kliknięcie jest określane jako zbyt długie i uznawane za długie dotknięcie. Możesz użyć opcji clickDuration
w ocrClickOnText
i ocrSetValue
, aby temu zaradzić. Zobacz tutaj.