テキストプロパティ
テスト対象システム(SUT)で光学文字認識(OCR)を使用してテキストを検索したり読み取ったりするには、テキストプロパティリストを使用する必要があります。これらのプロパティリストには、作業中のテキストや検索の目的に応じて含めることができる多種多様なプロパティがあります。
詳細については、OCRの利用を参照して、最も一般的に使用されるテキストプロパティの使用方法を学んでください。
このページでは、SenseTalkスクリプティングと直接関連するOCRプロパティをカバーしています。Eggplant Functionalのいくつかの位置からOCRプロパティを調整することも可能です:
テキストプロパティリストとは何ですか?
テキストプロパティリストは、SUT上のテキストの説明です。すべてのテキストプロパティリストには、検索対象の実際のテキスト文字列を定義するTextプロパティと、以下で説明する追加のプロパティが含まれている必要があります。プロパティリストに含まれていないプロパティは、テキストプリファレンスの設定にデフォルト設定されます。
以下のテキストプロパティは、任意のテキストプロパティリストで使用できます:
- Text:
テキスト文字列。 SUT上で見つけたいテキスト文字列。 (必須) - TextStyle:
テキストスタイル名。 事前に定義されたテキストプロパティのグループ。 (詳細は、テキスト検索パネルを参照してください。)
OCRテキストプロパティ参照表
以下の表をOCRで作業する際の参照として使用してください。これは、OCRの使用に対応するすべてのサポートされているSenseTalkプロパティの完全なリストです。一部のプロパティは読み取りと検索の両方で利用できますが、一部は特定のものに特化しています。プロパティに渡される値のタイプも含まれています。 プロパティの名前をクリックすると、その完全な説明が表示されます(完全な説明リストはこのページの表の下に含まれています)。最も一般的なOCRプロパティの使用方法について詳しく知るには、OCRの成功を参照してください。
boolean値は、Yes/Noの値が許可されるトグルスイッチのようなものであり、On/Offも許可されます。
| プロパティ | 検索 | 読取り | 値 |
|---|---|---|---|
| AggressiveTextExtraction | はい | はい | Boolean |
| CaseSensitive | はい | いいえ | Boolean |
| Contrast | はい | はい | Boolean |
| ContrastColor | はい | はい | 色(SenseTalkでの色値参照) |
| ContrastTolerance | はい | はい | 0-100 / デフォルト45 |
| DPI | はい | はい | 整数 |
| EnhanceLocalContrast | はい | はい | Boolean |
| ExtraWords | はい | はい | 文字列または単語のリスト |
| IgnoreNewLines | はい | いいえ | Boolean |
| IgnoreSpaces | はい | いいえ | Boolean |
| IgnoreUnderscores | はい | いいえ | Boolean |
| InvertImage | はい | はい | Boolean |
| Language | はい | はい | OCR言語サポートで指定されている言語名(大文字小文字を区別)。 |
| LowResolutionMode | はい | はい | ブール値 |
| Multiline | いいえ | はい | Boolean |
| PreferDictionaryWords | はい | はい | Boolean |
| PreferredPattern | はい | はい | 正規表現の文字列 (SenseTalkでパターンを使用するを参照) |
| PreferredWords | はい | はい | 文字列または単語のリスト |
| ProhibitedWords | はい | はい | 文字列または単語のリスト |
| SearchRectangle | はい | いいえ* | 矩形を定義する座標のペアまたは キャプチャした画像 |
| TextDifference | はい | いいえ | 整数 |
| TextRotation | はい | はい | 事前に定義された4つの値のうちの1つ |
| Trim | いいえ | はい | Boolean |
| TrimBorder | いいえ | はい | 整数 |
| TrimColor | いいえ | はい | 色 (SenseTalkでの色値を参照) |
| TrimTolerance | いいえ | はい | 整数 |
| TrimWhitespace | いいえ | はい | Boolean |
| ValidCharacters | いいえ | はい | Boolean |
| ValidPattern | はい | はい | 正規表現の文字列 (SenseTalkでパターンを使用するを参照) |
| ValidWords | はい | はい | 文字列または単語のリスト |
* ReadTextにはデフォルトで矩形が含まれているため、SearchRectangleプロパティを設定する必要はありません。このプロパティは、標準的な画像検索でも設定できます。詳しくは、画像参照をご覧ください。
OCRプロパティ定義
アグレッシブテキスト抽出
タイプ: Boolean。OCR で画像からできるだけ多くのテキストを抽出する場合は、このプロパティを有効にします。
アグレッシブテキスト抽出 例
アグレッシブテキスト抽出 例
Log ReadText(("TLImage","BRImage"), AggressiveTextExtraction:on)
大文字と小文字の区別
タイプ: ブール値、デフォルト: オフ。Eggplant Functionalがテキスト検索で大文字と小文字を考慮するかどうか。このプロパティを有効にすると、テキスト検索で大文字と小文字が区別され、テキスト文字列の大文字と小文字が正確に一致するテキストのみが検索されます。このプロパティは、テキストを読み取るためではなく、テキストを検索するためのものです。
CaseSensitive の例
-- caseSensitive example
Put "COUPON13995a" into Coupon
MoveTo (Text: Coupon, CaseSensitive:Yes)
コントラスト
Contrast: Boolean. SUTの表示が、OCR分析に送信される前に高コントラストの2色画像に変換されるかどうか。contrastがオンの場合、"コントラストカラー"と呼ばれる色(ContrastColor プロパティを使用して設定できます)がSUTの表示の主要な色と見なされ、他のすべての色は二次色として扱われます。テキストはどちらの色でも見つけることができます。Contrast プロパティは、テキストの検索(検出)と読み取りの両方で使用可能です。
コントラストの例
-- コントラストの例
log ReadText(contrast:on, contrastColor:"ffffff", validCharacters: "abcdABCD12345", searchRectangle:("TLImage","BRImage"))
Contrastがオンになっていても、ContrastColorが定義されていない場合、検索対象のエリアの左上のピクセルが対比色として扱われます。
コントラストカラー
カラー。デフォルト: [コントラスト] がオンで、他の色が定義されていない場合、検索四角形の左上隅がコントラスト カラーとして使用されます。コントラストがオンの場合、コントラストカラーはSUTディスプレイのプライマリカラーと見なされ、他のすべてのカラーはセカンダリカラーとして扱われます。背景色を見つける方法については、Determining the Background Color」を参照してください。SenseTalkは、いくつかのカラー値フォーマットを認識します。フォーマットの完全なリストについては、SenseTalkのColor値を参照してください。
ContrastColor の例
-- コントラストの例
log ReadText(contrast:on, contrastColor:"ffffff", validCharacters: "abcdABCD12345")
コントラストトレランス
ContrastTolerance: 整数。 デフォルト: 45。 Contrastがオンの場合、contrastToleranceは、ピクセルがコントラストカラーと見なされるための許容最大チャネルカラー差を設定します。
ContrastColor の例
-- コントラストの例
Click (Text:"Andrew Young", Contrast:On, ContrastTolerance: 65)
DPI
DPI: 整数。 デフォルト: 72。 DPIプロパティは、SUTディスプレイのDPI(ドット/インチ)を参照します。 SUT上のテキストが見つからない問題がある場合は、SUTのDPI設定を確認し、DPIプロパティをそれに応じて調整します。 典型的なDPI設定には、72、144、300、2540が含まれます。
DPIの例
DPIの例
Click (text: "Continue", DPI: 2540, Language: English)
エンハンスローカルコントラスト
タイプ: Boolean。デフォルト: オフ。OCR エンジンに送信されるテキスト画像のローカルコントラストを OCR で自動的に増加させる場合は、このプロパティを有効にします。このプロパティは、読み取られるテキストの一部または全部のコントラストが比較的低い場合 (暗い背景に青いテキストなど) の認識に役立つ場合があります。Contrastがオンの場合、このプロパティは効果がないため、Contrastがオフになっている場合にのみ役立ちます。
エンハンスローカルコントラスト
-- エンハンスローカルコントラスト
Log ReadText(("TLImage","BRImage"), enhanceLocalContrast: On)
エクストラワード
これらの単語は、他の辞書の単語と同じように優先されます。 ExtraWordsはPreferredWords、ValidPattern、PreferredPattern、およびValidWordsと相互排他的です。
ExtraWords の例
-- ExtraWordsの例
Log Readtext(("TLImage","BRImage"), Language: English, ExtraWords: "Elizabeth, Andrew, Steven, Katherine, Jacob, Brenda")
改行を無視
IgnoreNewlines: ブーリアン。 有効にすると、ignoreNewlinesはOCRテキスト検索で改行を無視するため、検索は複数の行に分割された文字列と一致します。 このプロパティはテキスト検索のみで使用可能であり、ReadTextでは使用できません。
IgnoreNewlines の例
-- IgnoreNewlines の例
-- このような長い名前の場合、テスト対象のアプリケーションのインターフェイスの 2 行目に折り返される可能性がありますが、OCR は IngoreNewlines を有効にしても読み取ることができます。
Click (Text:"Constantine Papadopoulos", IgnoreNewlines:On)
スペースを無視
IgnoreSpaces: ブーリアン。 ignoreSpacesプロパティは、OCRテキスト検索がテキスト文字列中のスペースを無視するようにします。 例えば、文字列"My Computer"は"MyComputer"や"M y C o m p u t e r"と一致します。 ignoreSpacesプロパティはデフォルトでオンになっています。 これは、OCRが特に不連続な単語や文字間隔が不規則なテキストにある意図しないスペースを読み取ることがあるためです。
IgnoreSpaces の例
-- IgnoreSpaces の例
テスト対象のソフトウェアのUIの一部である"My Account"というタブがありますが、異なる状況やデバイスでアンダースコア("My_Account")があるかスペースがない("MyAccount")形式で表示されることがあります。
Click (Text:"My Account", ignoreSpaces:On, IgnoreUnderscores:On) -- アンダースコアがあるか、スペースがあるか、スペースがないかに関わらず、アカウントタブを見つけることができます。
アンダースコアを無視
ignoreUnderscoresプロパティにより、OCRテキスト検索はアンダースコアをスペースとして扱います。 たとえば、文字列"My_Computer"は"My_Computer"または"My Computer"と一致します。 OCRエンジンがアンダースコアを認識できないことがあるため、ignoreUnderscoresプロパティはデフォルトでオンになっています。
IgnoreUnderscores の例
-- IgnoreSpaces の例
Click (Text:"Account Overview", IgnoreUnderscores:On) -- OCRが下線付きのリンクをアンダースコアがあるテキスト("Account_Overview")と誤認識する場合に、"Account Overview"をクリックします。
画像を反転
InvertImage: ブーリアン型。デフォルト:オフ。 このプロパティを有効にすると、OCRはテキスト画像の色を反転(写真ネガティブのように)してから、OCRエンジンに送信して処理します。
言語
Language: 言語名(大文字と小文字を区別する)。 検索しているテキストの自然言語。(サポートされている言語のリストについては、OCR言語サポートを参照してください。)OCRはこれをガイドとして、使用している辞書に指定された単語を優先します。複数の言語を指定することもできます。Eggplant Functionalにはデフォルトで多数の言語が含まれており、追加の言語を購入することもできます。言語が指定されていない場合でも、OCRはテキストを読み取りますが、その結果を比較する辞書はありません。また、カスタムOCR辞書を作成することもできます。
言語名は、OCR辞書で定義されているように、大文字と小文字を区別します。
言語の例
-- Language example
-- ハンガリー語を使用するアプリケーションの "close" (「Bezárás」) ボタンをクリックします。
Click (Text:"Bezárás", Language:"Hungarian", SearchRectangle:("TLImage","BRImage"))
LowResolutionMode
タイプ: ブール値、デフォルト: オフ。OCRエンジンがEggplant Functionalから受信した画像を低解像度として扱うために使用する処理モードです(画像は実際には低解像度に変換されません)。これにより、OCR が小さな文字を認識するのに役立つ場合があります。
Multiline
MultiLine: ブーリアン型。デフォルト値:オフ。 このプロパティは、矩形内のテキストを読み取るのではなく、点近くのテキストを読み取る場合にのみ適用されます。MultiLineがオンの場合、ReadText関数は、指定した点に関連するテキスト行と、その点の上下のテキスト行を返します(それらが同じテキストブロックに属していると思われる場合)。MultiLineがオフの場合、<code>ReadText関数は点に関連するテキスト行のみを返します。
複数行の例
-- Multiline example
Log ReadText("ShortTextBlockHeaderImage", MultiLine:On, Contrast:On, ContrastColor:BkgdColor)
PreferDictionaryWords
タイプ: Boolean。OCR は、Language プロパティによって提供される任意の辞書の単語を常に優先しますが、PreferDictionaryWords はこれをさらに一歩進めて、可能であれば OCR が辞書の単語を返すように要求します。辞書に載っていない単語を、各文字の最適な解釈を使用して返すのは、可能なバリアントが見つからない場合のみです。このプロパティは、OCR ディクショナリを変更します。詳細については 、OCR ディクショナリのカスタマイズ」を参照してください。テキストの読み取りと検索の両方に使用できます。
PreferDictionaryWords の例
-- PreferDictionaryWords example
--"Cattywampus" またはその他のありそうもない単語は、指定された searchRectangle 内に表示されるテキストであり、PreferDictionaryWords は正しい単語を返すように強制します。
Log ReadText(("TLImage","BRImage"), Language:English, PreferDictionaryWords:On)
PreferredPattern
PreferredPattern: 正規表現文字列(OCRプロパティに使用するSenseTalkパターンとして定義)。 このプロパティが有効化され、正規表現文字列が与えられると、OCRは提供されたパターンに一致するテキストを優先します。SenseTalkで使用できる正規表現文字についての情報は、Using Patterns in SenseTalkを参照してください。OCRにパターンマッチを必要とさせたい場合は、ValidPatternを使用してください。PreferredPatternはPreferredWords、ValidPattern、ValidWords、およびExtraWordsと相互排他的です。
PreferredWords
PreferredWords: 単語または単語のリスト。 このプロパティを、現在の言語の組み込み辞書を補完する単語のリストに設定します。PreferredWordsはテキストの読み取りまたは検索のどちらにも使用できます。このプロパティはOCR辞書を変更します。詳細については、Customize the OCR Dictionaryを参照してください。PreferredWordsはValidWords、ValidPattern、PreferredPattern、およびExtraWordsと相互排他的です。
PreferredWords の例
-- PreferredWords example
-- 顧客名の一覧が PreferredWords プロパティの値として渡され、それらすべての名前が OCR ディクショナリに追加されます。
Log ReadText(("TLImage","BRImage"), Language: PortugueseBrazilian, PreferredWords:CustomerNameList)
上記の例で、"PortugueseBrazilian"は引用符で囲まれていません。この未使用の変数はその名前に解決されるため、Languageプロパティに渡される値は"PortugueseBrazilian"、つまりこのテキストが引用符内にあった場合と同じです。
ProhibitedWords
単語または単語のリスト。OCRが探しているものではないと認識できる単語を提供して、正しい方向に導くのに役立ちます。ProhibitedWords は、テキストの読み取りと検索の両方に使用できます。このプロパティは、OCR ディクショナリを変更します。詳細については、OCR ディクショナリのカスタマイズ」を参照してください。
ProhibitedWords の例
-- ProhibitedWordsの例
-- ProhibitedWords プロパティを使用して、OCR が正しいと間違える可能性のあるスペルミスを排除します。
Click(Text:"Annita",ProhibitedWords:"Amita")
SearchRectangle
座標ペア (左上隅、右下隅) で定義される四角形。(0,0) が画面の左上隅である場合、SearchRectangle プロパティは、SUT 画面の四角形領域を定義する座標のペアを受け取ります。Eggplant Functionalは、この定義された長方形内のテキストのみを検索します。SearchRectangle プロパティは、テキストの読み取りではなく、テキストの検索に使 用するためのものです。ReadText() 関数で SearchRectangle を設定する場合、ReadText() はデフォルトで長方形を取るため、特別なプロパティは必要ありません。SearchRectangle プロパティは、Images を検索するときにも設定できます。詳細については、Image Referencesを参照してください。
SearchRectangle の例
-- SearchRectangle の例
SearchRectangleプロパティを使用してテキスト文字列を検索します:
Click (Text:"CharlieBrown", SearchRectangle:("TLImage","BRImage"),contrast:On)
ReadText() 関数に直接長方形を渡してテキストを読み取ります:
Log ReadText(("TLImage","BRImage"),contrast:On)
テキスト差分
Text Difference: このプロパティにより、テキスト検索は、検索と特定の文字数だけ異なるテキストを見つけます。OCR検索専用。
TextDifference の例
TextDifference の例
-- 「armadolli」または「armadillo」と1文字または2文字異なるその他のバリエーションとして書かれたテキストが見つかります。
moveTo text:"armadillo", searchRectangle:(305,241,372,274),TextDifference:2
テキスト回転
TextRotation: 4つの定義済み値のうちの1つ:時計回り、反時計回り、上下逆、またはなし。 このプロパティが設定 されている場合、OCRは定義済みの値の1つで指定された回転角度で単語を識別します:時計回りは右に90度回転します;反時計回りは左に90度回転します;上下逆は180度回転します;なしはテキストを回転させません。テキストの読み取りと検索の両方に使用できます。
TextRotation の例
TextRotation の例
Log ReadText(("TLImage","BRImage"),TextRotation:"Clockwise")
Click (Text:"Charlie Brown",TextRotation: "Upside-down")
Trim
タイプ: ブール値、デフォルト: オフ。トリムが``オンの場合、OCR エンジンは、背景以外のピクセル (通常は読み取るテキストの端) が検出されるまで、ReadText()関数に提供される四角形のサイズを縮小します。背景色は、四角形の左上のピクセル、または TrimColor プロパティから取得されます。
トリムボーダー
タイプ: 整数、デフォルト: 0。``TrimBorder は、readtext-function">ReadText() 関数の矩形からトリミングされない背景のピクセル幅です。TrimBorder を負の数に設定すると、四角形から背景以外のエッジがトリミングされます。
トリムカラー
TrimColor: 色。 Trimがオンの場合、TrimColorは、ReadText()関数の矩形の背景と考えられる色です。TrimColorプロパティを設定しない場合、背景色は矩形の左上のピクセルから取得されます。SenseTalkは、いくつかの色値形式を認識します。形式の全リストについては、SenseTalkの色値を参照してください。
トリムトレランス
TrimTolerance: 整数。デフォルト値:0。 Trimがオンの場合、TrimToleranceは、ピクセルがTrimColorのRGB値からどれだけ異なっても、まだ背景と見なされるかの尺度です。
トリムホワイトスペース
タイプ: ブール値、デフォルト: オン。TrimWhitespace がオンの場合、返されるテキストの先頭と末尾からすべての空白文字が削除されます。TrimWhitespace がオフの場合、ReadText 関数は、空白文字で始まるテキストまたは空白文字で終わるテキストを返すことができます。テキストの読み取りにのみ使用し、事前定義された文字列の検索には使用しません。
有効な文字
テキスト文字列。validCharactersプロパティは、OCRテキストエンジンによって検出される可能性のある文字を制限します。ValidCharactersは、文字列を「*」に設定することで、検索する文字列内の文字に制限できます。これは、認識されていない文字からテキストの 一致を「強制」しようとしている場合に便利です。OCRが定義された領域に文字が存在するが、validCharacters文字列で指定された文字と一致しないと判断した場合、「^」を返します。
ValidCharacters の例
-- ValidCharactersの例
-- ValidCharacters を手動で設定する:
-- 通貨記号を含む数値を読み取ります
Log ReadText (("TLImage","BRImage"), ValidCharacters:"$£€.,0123456789")
--アスタリスクを使用してValidCharactersを検索対象のテキストに設定する:
Click (Text:"CoDe13v9065", ValidCharacters:"*", SearchRectangle:("UpperLeftImage","LowerRightImage"))
有効なパターン
正規表現文字列(OCRプロパティで使用するためのSenseTalkパターンで定義)。このプロパティは正規表現の値を受け取り、指定されたパターンに一致する文字または単語のみを返します。SenseTalkで使用できる正規表現文字については、SenseTalkでのパターンの使用を参照してくだ さい。OCR でパターンを優先するが、必須ではない場合は、PreferredPattern を参照してください。ValidPattern は、PreferredWords、ValidWords、PreferredPattern、および ExtraWords と相互に排他的です。
ValidPattern の例
ValidPattern の例
-- SUT画面の時刻を読み取ります。
Log ReadText(("RT1","RT2"), validPattern:"[0-9][0-9]:[0-9][0-9]")
-- formattedTime() に提供されたパターンに従って今日の日付をフォーマットします
put formattedTime("[m]/[d]/[year]") into today
-- SUT画面で見つかった日付をクリックし、日付と時刻のパネルを開きます。読み取られる日付形式は 1/4/2020 で、この例ではパターンが validPattern に渡されます。
Click (Text:Today, SearchRectangle:("TL_Date","BR_Date"), validPattern:"[0-9]/[0-9]/[0-9][0-9][0-9][0-9]")
有効な単語
Valid Words: OCRがマッチと見なすことができる単語を制限することで、OCRエンジンを成功したマッチに向けたり、あなたのテキスト文字列を正しく認識させることができます。アスタリスク(*)をワイルドカードとして使用して、OCRエンジンがあなたのオリジナルのテキスト文字列にある単語のみを検索するようにすることができます。このプロパティは、OCRテキストエンジンが見つけることができる単語を制限します。詳しくはCustomize the OCR Engine Dictionaryを参照してください。validWordsプロパティはLanguageプロパティをオーバーライドします。このオーバーライドは、validWordsプロパティの一部でない単語は返されないことを意味します。
ValidWords の例
-- ValidWords の例
検索テキスト用の変数を使用したValidWordsの使用:
Put "Charlie Brown" into mytext
-- validCharactersを"*"に設定して、Textプロパティで検索する単語と一致するようにします。
Click (text: mytext, searchRectangle:("TLImage","BRImage"), validwords:"*")
テスト対象のアプリケーションでの言語設定を確認するためのValidWordsの使用:
Log ReadText(("TLImage","BRImage"), validWords:"Japanese, English, Spanish, Portuguese, French")
OCRプロパティ用の正規表現パターン
これらの正規表現パターンは、光学式文字認識 (OCR) で使用するためのものです。パターンの使用に関する詳細は、SenseTalkでのパターンの使用を参照してください。
これらのSenseTalkパターン記号は、validPatternおよびpreferredPatternで使用するためのものであり、完全なSenseTalkパターン言語と混同しないでください。OCR以外のSenseTalkパターンの使用に関する詳細情報は、SenseTalkパターン言語の基本を参照してください。
| 項目名 | 一般的な正規表現記号 | 使用例/説明 |
|---|---|---|
| 任意の文字 | . | c.t - 例えば「cat」や「cot」を示します |
| 文字の範囲からの文字 | [] | [b-d]ell - 「bell」、「cell」、「dell」などの単語を示します [ty]ell - 「tell」と「yell」の単語を示します [A-Z] - 任意の大文字のアルファベット文字を示します [a-z] - 任意の小文字のアルファベット文字を示します [A-Я] - 任意の大文字のキリル文字を示します [а-я] - 任意の小文字のキリル文字を示します [0-9] - 任意の数字文字を示します [0-9a-zA-Z] - アルファベットと数字の文字を含む任意の単一の文字を示します |
| 文字の範囲外の文字 | `[^] | [^y]ell - 「dell」、「cell」、「tell」などの単語を示しますが、「yell」は除外します |
| または | | | c(a|u)t - 「cat」と「cut」の単語を示します |
| 連続して0回以上の出現 | * | 10* - 数字1, 10, 100, 1000, などを示します |
| 連続して1回以上の出現 | + | 10+ - 数字10, 100, 1000, などを許可しますが1は許可しません [0-9a-zA-Z]+ - 任意の単語を許可します |
注意点:
- 正規表現で使用される一部の文字はシステム用途で使用されます。上記の表で見られるように、これらの文字には角括弧、ピリオドなどが含まれます。
- 補助文字を通常の文字として入力したい場合は、その前にバックスラッシュ (\) を置きます。例:
[t-v]x+は"tx", "txx", "txxx", "ux", "uxx",などの単語を示しますが、\\[t-v\\]x+は "\[t- v\]x", "\[t-v\]xx", "\[t-v\]xxx"などの単語を示します。 - 特定の正規表現要素をグループ化する必要がある場合は、括弧を使用します。たとえば、
(a|b)+|cは"c"と、"abbbaaabbb", "ababab"など任意の組み合わせ(任意の順序でaとbの任意の数が含まれる非ゼロの長さの単語)を示します。一方、a|b+|cは"a", "c", そして "b", "bb", "bbb"などを示します。