メインコンテンツまでスキップ

テキストプロパティ

テスト対象システム(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はいはいBoolean
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プロパティ定義

  • AggressiveTextExtraction: Boolean. 画像から可能な限り多くのテキストをOCRで抽出したい場合は、このプロパティを有効にします。

    例:

    Log ReadText(("TLImage","BRImage"), enableaggressivetextextraction:on)

  • CaseSensitive: Boolean. Default: off. Eggplant Functionalがテキスト検索で大文字と小文字を区別するかどうか。このプロパティを有効にすると、テキスト検索が大文字と小文字を尊重し、テキスト文字列の大文字化に完全に一致するテキストのみを見つけます。このプロパティはテキストの検索、テキストの読み取りではなく、テキストの検索用です。

    例:

    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が定義されていない場合、検索対象のエリアの左上のピクセルが対比色として扱われます。

:::

  • ContrastColor: 色. Default: Contrastがオンで他の色が定義されていない場合、検索矩形の左上隅がコントラストカラーとして使用されます。 Contrastがオンの場合、コントラストカラーはSUTの表示の主要な色と見なされ、他のすべての色は二次色として扱われます。背景色を見つける方法については、背景色の決定を参照してください。SenseTalkはいくつかの色値形式を認識します。形式の完全なリストについては、SenseTalkでの色値をご覧ください。

例:

log ReadText(contrast:on, contrastColor:"ffffff", validCharacters: "abcdABCD12345")

  • ContrastTolerance: 整数。 デフォルト: 45。 Contrastがオンの場合、contrastToleranceは、ピクセルがコントラストカラーと見なされるための許容最大チャネルカラー差を設定します。

例:

Click (Text:"Andrew Young", Contrast:On, ContrastTolerance: 65)

  • DPI: 整数。 デフォルト: 72。 DPIプロパティは、SUTディスプレイのDPI(ドット/インチ)を参照します。 SUT上のテキストが見つからない問題がある場合は、SUTのDPI設定を確認し、DPIプロパティをそれに応じて調整します。 典型的なDPI設定には、72、144、300、2540が含まれます。

例:

Click (text: "Continue", DPI: 2540, Language: English)

  • EnhanceLocalContrast: ブーリアン。 デフォルト: オフ。 このプロパティを有効にすると、OCRがテキスト画像のローカルコントラストを自動的に上げ、OCRエンジンに送信します。 このプロパティは、読み取られるテキストの一部または全部が比較的低コントラストである場合(たとえば、暗い背景に青いテキストなど)に、認識を助ける可能性があります。 Contrastがオンになっていると、このプロパティは効果がないため、Contrastがオフになっているときにのみ役立ちます。

例:

Log ReadText(("TLImage","BRImage"), enhanceLocalContrast: On)

  • ExtraWords: 単語または単語のリスト。 このプロパティを現在の言語の組み込み辞書を補完する単語のリストに設定します。 これらの単語は、他の辞書の単語と同じように優先されます。ExtraWordsPreferredWordsValidPatternPreferredPattern、およびValidWordsと相互排他的です。

例:

Log Readtext(("TLImage","BRImage"), Language: English, ExtraWords: "Elizabeth, Andrew, Steven, Katherine, Jacob, Brenda")

  • IgnoreNewlines: ブーリアン。 有効にすると、ignoreNewlinesはOCRテキスト検索で改行を無視するため、検索は複数の行に分割された文字列と一致します。 このプロパティはテキスト検索のみで使用可能であり、ReadTextでは使用できません。

例:

Click (Text:"Constantine Papadopoulos", IgnoreNewlines:On) -- このような長い名前の場合、アプリケーションのインターフェイスで2行に折り返される可能性がありますが、OCRはIngoreNewlinesが有効であればそれでも読み取ることができます。

  • IgnoreSpaces: ブーリアン。 ignoreSpacesプロパティは、OCRテキスト検索がテキスト文字列中のスペースを無視するようにします。 例えば、文字列"My Computer"は"MyComputer"や"M y C o m p u t e r"と一致します。 ignoreSpacesプロパティはデフォルトでオンになっています。 これは、OCRが特に不連続な単語や文字間隔が不規則なテキストにある意図しないスペースを読み取ることがあるためです。

例:

テスト対象のソフトウェアのUIの一部である"My Account"というタブがありますが、異なる状況やデバイスでアンダースコア("My_Account")があるかスペースがない("MyAccount")形式で表示されることがあります。
Click (Text:"My Account", ignoreSpaces:On, IgnoreUnderscores:On) -- アンダースコアがあるか、スペースがあるか、スペースがないかに関わらず、アカウントタブを見つけることができます。

  • IgnoreUnderscores: ブーリアン。 ignoreUnderscoresプロパティは、OCRテキスト検索が検索中にアンダースコアをスペースとして扱うようにします。 例えば、文字列"My_Computer"は"My_Computer"や"My Computer"と一致します。 ignoreUnderscoresプロパティはデフォルトでオンになっています。 これは、OCRがアンダースコアを認識しないことがあるためです。

例:

Click (Text:"Account Overview", IgnoreUnderscores:On) -- OCRが下線付きのリンクをアンダースコアがあるテキスト("Account_Overview")と誤認識する場合に、"Account Overview"をクリックします。

  • InvertImage: ブーリアン型。デフォルト:オフ。 このプロパティを有効にすると、OCRはテキスト画像の色を反転(写真ネガティブのように)してから、OCRエンジンに送信して処理します。

  • Language: 言語名(大文字と小文字を区別する)。 検索しているテキストの自然言語。(サポートされている言語のリストについては、OCR言語サポートを参照してください。)OCRはこれをガイドとして、使用している辞書に指定された単語を優先します。複数の言語を指定することもできます。Eggplant Functionalにはデフォルトで多数の言語が含まれており、追加の言語を購入することもできます。言語が指定されていない場合でも、OCRはテキストを読み取りますが、その結果を比較する辞書はありません。また、カスタムOCR辞書を作成することもできます。

ノート

言語名は、OCR辞書で定義されているように、大文字と小文字を区別します。

例:

Click (Text:"Bezárás", Language:"Hungarian", SearchRectangle:("TLImage","BRImage")) -- ハンガリー語を使用するアプリケーションで「閉じる」("Bezárás")ボタンをクリックします。
  • LowResolutionMode: ブーリアン型。デフォルト:オフ。 OCRエンジンがEggplant Functionalから受け取る画像を低解像度として扱う処理モード(画像は実際には低解像度に変換されません)。これにより、OCRが小さな文字を認識しやすくなる可能性があります。

  • MultiLine: ブーリアン型。デフォルト値:オフ。 このプロパティは、矩形内のテキストを読み取るのではなく、点近くのテキストを読み取る場合にのみ適用されます。MultiLineがオンの場合、ReadText関数は、指定した点に関連するテキスト行と、その点の上下のテキスト行を返します(それらが同じテキストブロックに属していると思われる場合)。MultiLineがオフの場合、ReadText関数は点に関連するテキスト行のみを返します。

例:

Log ReadText("ShortTextBlockHeaderImage", MultiLine:On, Contrast:On, ContrastColor:BkgdColor)
  • PreferDictionaryWords: ブーリアン型。 OCRは常に、Languageプロパティによって提供される辞書内の単語を優先しますが、PreferDictionaryWordsはこれを一歩進め、可能な限り辞書の単語を返すようにOCRを要求します。可能なバリアントが見つからない場合のみ、OCRは最良の解釈を用いて非辞書の単語を返します。このプロパティはOCR辞書を修正します。詳細については、OCR辞書のカスタマイズを参照してください。テキストの読み取りと検索の両方で利用可能です。

例:

Log ReadText(("TLImage","BRImage"), Language:English, PreferDictionaryWords:On) --"Cattywampus"または他のありそうもない単語が指定したsearchRectangle内に表示されているテキストであり、PreferDictionaryWordsは正しい単語が返されるように強制します。

  • PreferredPattern: 正規表現文字列(OCRプロパティに使用するSenseTalkパターンとして定義)。 このプロパティが有効化され、正規表現文字列が与えられると、OCRは提供されたパターンに一致するテキストを優先します。SenseTalkで使用できる正規表現文字についての情報は、Using Patterns in SenseTalkを参照してください。OCRにパターンマッチを必要とさせたい場合は、ValidPatternを使用してください。PreferredPatternPreferredWordsValidPatternValidWords、およびExtraWordsと相互排他的です。

  • PreferredWords: 単語または単語のリスト。 このプロパティを、現在の言語の組み込み辞書を補完する単語のリストに設定します。PreferredWordsはテキストの読み取りまたは検索のどちらにも使用できます。このプロパティはOCR辞書を変更します。詳細については、Customize the OCR Dictionaryを参照してください。PreferredWordsValidWordsValidPatternPreferredPattern、およびExtraWordsと相互排他的です。

例:

Log ReadText(("TLImage","BRImage"), Language: PortugueseBrazilian, PreferredWords:CustomerNameList) -- 顧客の名前のリストがPreferredWordsプロパティの値として渡され、それらすべての名前がOCR辞書に追加されます。

ノート

上記の例で、"PortugueseBrazilian"は引用符で囲まれていません。この未使用の変数はその名前に解決されるため、<code>Languageプロパティに渡される値は"PortugueseBrazilian"、つまりこのテキストが引用符内にあった場合と同じです。

  • ProhibitedWords: 単語または単語のリスト。 OCRが認識でき、しかしあなたが探しているものではない単語を提供します。これは、それを正しい方向に導くのに役立ちます。ProhibitedWordsはテキストの読み取りと検索の両方に使用できます。このプロパティはOCR辞書を変更します。詳細については、Customize the OCR Dictionaryを参照してください。

例:

Click(Text:"Annita",ProhibitedWords:"Amita") -- ProhibitedWordsプロパティを使用して、OCRが正しいと間違える可能性のある誤字を排除します。

  • SearchRectangle: 座標ペア(左上角、右下角)で定義される長方形。 (0,0)が画面の左上角である場合、SearchRectangleプロパティは、SUT画面の長方形領域を定義する座標ペアを取ります。Eggplant Functionalは、この定義された長方形内のテキストのみを検索します。SearchRectangleプロパティはテキストの検索に使用され、テキストの読み取りには使用されません。ReadText() functionSearchRectangleを設定すると、特別なプロパティは必要ない、なぜならReadText()はデフォルトで長方形を取るからです。SearchRectangleプロパティは、Imagesの検索時にも設定できます。詳しくは、Image Referencesを参照してください。

例:

SearchRectangleプロパティを使用してテキスト文字列を検索します:
Click (Text:"CharlieBrown", SearchRectangle:("TLImage","BRImage"),contrast:On)

ReadText()関数に直接長方形を渡してテキストを読み取ります:
Log ReadText(("TLImage","BRImage"),contrast:On)

  • TextDifference: 整数。デフォルト:0。 このプロパティは、あなたの検索から一定の文字数だけ異なるテキストを見つけるためのテキスト検索を引き起こします。OCR検索でのみ利用可能です。

例:

moveTo text:"armadillo", searchRectangle:(305,241,372,274),TextDifference:2 -- "armadillo"というテキストを"armadolli"など、"armadillo"と1〜2文字異なる任意のバリエーションとして見つけます。

  • TextRotation: 4つの定義済み値のうちの1つ:時計回り、反時計回り、上下逆、またはなし。 このプロパティが設定されている場合、OCRは定義済みの値の1つで指定された回転角度で単語を識別します:時計回りは右に90度回転します;反時計回りは左に90度回転します;上下逆は180度回転します;なしはテキストを回転させません。テキストの読み取りと検索の両方に使用できます。

例:

Log ReadText(("TLImage","BRImage"),TextRotation:"Clockwise")
Click (Text:"Charlie Brown",TextRotation: "Upside-down")

  • Trim: ブール型。デフォルト値:Off。 Trimonの場合、OCRエンジンは、ReadText()関数に提供される矩形のサイズを、非背景ピクセル(通常は読み取りたいテキストの端)に遭遇するまで縮小します。背景色は、矩形の左上のピクセルまたはTrimColorプロパティから取得します。

  • TrimBorder: 整数。デフォルト値:0。 Trimがオンの場合、TrimBorderは、ReadText()関数の矩形からトリミングされない背景のピクセル幅です。TrimBorderは、矩形から非背景のエッジをトリミングするために、負の数に設定できます。

  • TrimColor: 色。 Trimがオンの場合、TrimColorは、ReadText()関数の矩形の背景と考えられる色です。TrimColorプロパティを設定しない場合、背景色は矩形の左上のピクセルから取得されます。SenseTalkは、いくつかの色値形式を認識します。形式の全リストについては、SenseTalkの色値を参照してください。

  • TrimTolerance: 整数。デフォルト値:0。 Trimがオンの場合、TrimToleranceは、ピクセルがTrimColorのRGB値からどれだけ異なっても、まだ背景と見なされるかの尺度です。

  • TrimWhitespace: ブール型。デフォルト:On。 TrimWhitespaceがオンの場合、返されるテキストの先頭と末尾からすべての空白文字が削除されます。TrimWhitespaceがオフの場合、ReadText関数は空白文字で始まるか終わるテキストを返すことがあります。事前に定義された文字列の検索ではなく、テキストの読み取りにのみ使用します。

  • ValidCharacters: テキスト文字列。 validCharactersプロパティは、OCRテキストエンジンが見つけることができる文字を制限します。ValidCharactersは、検索している文字列の中の文字に限定することができます。これは、認識されていない文字からテキストマッチを"強制"しようとする場合に便利です。OCRが定義されたエリアに文字が存在するが、それらがvalidCharacters文字列に提供された文字と一致しないと判断すると、"^"を返します。

例:

validCharactersを手動で設定する:
Log ReadText[("TLImage","BRImage"], ValidCharacters:"$£€.,0123456789") -- 通貨記号を含む数値を読み取る

アスタリスクを使用して、検索されているテキストにValidCharactersを設定します:
Click (Text:"CoDe13v9065", ValidCharacters:"*", SearchRectangle:("UpperLeftImage","LowerRightImage"))

  • ValidPattern: 正規表現の文字列(SenseTalkのOCRプロパティ用パターンで定義されています)。このプロパティは正規表現の値を取り、指定したパターンと一致する文字または単語のみを返します。SenseTalkで使用できる正規表現文字については、SenseTalkでのパターンの使用を参照してください。OCRがパターンを優先するものの必須ではない場合は、PreferredPatternを参照してください。ValidPatternPreferredWordsValidWordsPreferredPattern、およびExtraWordsとは排他的です。

例:

Log ReadText(("RT1","RT2"), validPattern:"[0-9][0-9]:[0-9][0-9]") -- SUT画面から時間を読み取ります。

put formattedTime("[m]/[d]/[year]") into today -- 今日の日付を、formattedTime()に提供されたパターンに従ってフォーマットします。
Click (Text:Today, SearchRectangle:("TL_Date","BR_Date"), validPattern:"[0-9]/[0-9]/[0-9][0-9][0-9][0-9]") -- SUT画面で見つかった日付をクリックし、日付と時間のパネルを開きます。この例のvalidPatternに渡されたパターンで読み取られる日付形式は1/4/2020です。

  • ContrastがオンであるがContrastColorが定義されていない場合、検索対象のエリアの左上のピクセルがコントラストカラーとして扱われます。

例:

検索テキスト用の変数を使用したValidWordsの使用:
Put "Charlie Brown" into mytext
Click (text: mytext, searchRectangle:("TLImage","BRImage"), validwords:"*") -- validCharactersを"*"に設定して、Textプロパティで検索される単語と一致するようにします。

テスト対象のアプリケーションでの言語設定を確認するためのValidWordsの使用:
Log ReadText(("TLImage","BRImage"), validWords:"Japanese, English, Spanish, Portuguese, French")

OCRプロパティ用の正規表現パターン

これらの正規表現パターンは、光学文字認識(OCR)で使用するためのものです。

ノート

これらの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"などを示します。