よくある質問
テストが非常に遅い
@wdio/ocr-service
を使用する場合、テストを高速化するために使用するのではなく、ウェブ/モバイルアプリで要素を見つけるのが難しく、それらを見つけるためのより簡単な方法が欲しいから使用します。そして私たち全員が願わくば知っているように、何かを得るためには何か他のものを失うことになります。しかし...、@wdio/ocr-service
を通常より速く実行する方法があります。詳細はこちらで見つけることができます。
このサービスのコマンドをデフォルトのWebdriverIOコマンド/セレクタと一緒に使用できますか?
はい、コマンドを組み合わせることでスクリプトをさらに強力にすることができます!アドバイスとしては、可能 な限りデフォルトのWebdriverIOコマンド/セレクタを使用し、一意のセレクタが見つからない場合や、セレクタが非常に脆弱になる場合にのみこのサービスを使用することです。
テキストが見つかりません、なぜですか?
まず、このモジュールのOCRプロセスの仕組みを理解することが重要です。こちらのページをお読みください。それでもテキストが見つからない場合は、次のことを試してみてください。
画像領域が大きすぎる
モジュールがスクリーンショットの広い範囲を処理する必要がある場合、テキストが見つからないことがあります。コマンドを使用する際にhaystackを提供することで、より小さな領域を指定できます。haystackの提供をサポートするコマンドについてはコマンドをご確認ください。
テキストと背景のコントラストが適切ではない
これは、白い背景に薄いテキストや暗い背景に暗いテキストがある場合があることを意味します。これによりテキストが見つからない場合があります。以下の例では、Why WebdriverIO?
というテキストが白色で、グレーのボタンに囲まれています。この場合、Why WebdriverIO?
というテキストが見つかりません。特定のコマンドのコントラストを上げることで、テキストが見つかりクリックできるようになります(2番目の画像を参照)。
await driver.ocrClickOnText({
haystack: { height: 44, width: 1108, x: 129, y: 590 },
text: "WebdriverIO?",
// // デフォルトのコントラスト0.25では、テキストが見つかりません
contrast: 1,
});
要素がクリックされてもモバイルデバイスでキーボードが表示されないのはなぜですか?
これは、クリックが長すぎると判断され、長押しと見なされるテキストフィールドで発生することがあります。ocrClickOnText
およびocrSetValue
のclickDuration
オプションを使用してこの問題を軽減できます。こちらを参照してください。
このモジュールは通常のWebdriverIOのように複数の要素を返すことができますか?
いいえ、現在これは不可能です。モジュールが提供されたセレクタに一致する複数の要素を見つけた場合、自動的に最も高いマッチングスコアを持つ要素を見つけます。