ハートコア株式会社
HeartCore Robo Desktopマニュアル一覧へ
15/03/19

HeartCore Robo Desktop 5.0 独自言語リファレンス

最終更新日:2019年3月15日

目次

1.
はじめに
1.1 目的
1.2 書式
1.3 本製品の特徴
2. 言語構文
2.1 言語構造
2.2 時間値
2.3 変数
2.4 プロシージャ
2.5 フォールバックプロシージャ
2.6 数値式
2.7 論理式
2.8 関数
2.9 If/Else文
2.10 For文
2.11 戻り値
2.12 Javaコードブロック
2.13 イメージコレクション
2.14 画像メタデータ
3. コマンドの構文
3.1 デスクトップコマンド
3.1.1 Browser
3.1.2 Connect
3.1.3 Disconnect
3.1.4 Mouse
3.1.5 Paste
3.1.6 Press
3.1.7 Type / Typeline
3.2 管理および実行制御コマンド
3.2.1 Break
3.2.2 Click
3.2.3 CompareTo
3.2.4 Continue
3.2.5 Drag
3.2.6 Eval
3.2.7 Exec
3.2.8 Exit
3.2.9 Imagedoctor(イメージドクター)
3.2.10 Include
3.2.11 Pause
3.2.12 Run
3.2.13 String
3.2.14 Var
3.2.15 Varf
3.2.16 Wait
3.2.17 Waitfor
3.3 レポートコマンド
3.3.1 Log
3.3.2 Report
3.3.3 Screenshot
3.3.4 Script
3.3.5 Sendmail
3.3.6 Step
3.3.7 Timer
3.3.8 Warning
3.4 I/O コマンド
3.4.1 Excel
3.4.2 File
4. イメージ比較機能
4.1 イメージ比較の書式
4.1.1 イメージコレクション
4.1.2 画像メタデータ
4.1.3 イメージ比較の推奨事項
4.2 イメージ検索方法
4.2.1 イメージ検索v2( "search2")
4.2.2 イメージ検索( "search")
4.2.3 オブジェクト検索( "object")
4.3 テキスト認識方法
4.3.1 Tesseract-OCR( "tocr")
4.3.2 画像ベースのテキスト認識( "text")
4.4 その他の方法
4.4.1 ヒストグラムベースの比較("default")
4.4.2 画像の違い("diff")

1. はじめに


1.1 目的

このドキュメントでは、HeartCore Robo Desktop 4.4でサポートされているテストスクリプト言語の完全な仕様を提供しています。 その目的は、このツールとそのテストフレームワークを使用して自動テストスクリプトを作成するユーザーに完全な構文と機能のリファレンスを提供することです。スクリプト言語はJava Test Script APIと緊密に連携しているため、Javaテストスクリプトの設計に補完的な機能参照を提供することも目的としています。

このドキュメントで説明する言語のテストスクリプトは、TPRテストスクリプトと呼ばれます。Java Test Script APIに基づくテストスクリプトは、Javaテストスクリプトと呼ばれます。

このドキュメントは、前のバージョンのVNCRobot 1.3の仕様に基づいており、下位互換性を維持し、テストスクリプトの要件、解析および処理ルール、文、式、コマンド、イメージ比較メソッドなどの特定の要素の言語構造および構文について説明します。


1.2 書式

HeartCore Robo Desktopは、自動化されたテストスクリプトを書ける単純なスクリプト言語をサポートしています。これは、Linux / Unix上のシェルスクリプトと幾分類似した構造化された手続き型言語です。モダンプログラミング言語として良く知られているような構造と要素をサポートしています。例えば

HeartCore Robo Desktopは、最も一般的なリモートおよびローカルのデスクトップテクノロジで動作するように設計されているため、スクリプト言語はコマンドをほぼ4つの機能領域に分類できます。

  1. デスクトップコマンド は通常、デスクトップとの接続/切断、マウスとキーボード入力の転送(キーの押下、テキストの入力、マウスの移動の実行、クリック、ドラッグ、またはホイールイベント)など、クライアントとサーバー間の通信に関係します。
  2. 管理および実行制御コマンド は、テストスクリプト実行制御(一時停止、停止、デスクトップイメージ解析、指定された時間または特定のイベントの待機)、変数、ライブラリ、外部OSコマンド呼び出しのサポートに必要なインフラストラクチャを提供します。
  3. レポートコマンド は、自動テスト出力を定義し、ユーザーに報告します。このカテゴリのコマンドを使用すると、たとえば、デスクトップイメージまたはその一部のスクリーンショットを取ったり、レポートを作成したり、電子メールを送信したり、テスト結果を関連するテスト管理ツールにアップロードしたりすることができます。
  4. I / Oコマンドは 、さまざまなデータソースからの入出力を処理します。
一部のコマンドの動作は、ユーザーの設定によってカスタマイズされる可能性があることに注意してください。このようなパラメータは実装固有のものであり、必ずしもこのドキュメントの一部を構成するとは限りません。構成可能な値があるかどうか調べるには、HeartCore Robo Desktop GUIで Preferences ウィンドウを開き、 Plugins セクションの下にコマンド設定パネルがあるかどうかを確認します。

スクリプティング言語は、高速かつ容易な自動化方法を提供しますが、機能には限界があり、オブジェクト指向のアプローチが欠けています。このため、Robotバージョン2.0以降では、 Java Test Script API このリファレンスで指定されたコマンドの機能にアクセスするメソッド呼び出しを介して、純粋なJavaでテストスクリプトを書くことができます。そのため、Javaを使用する予定がある場合でも、この仕様を参照する必要があります。詳細は、 Java API documentation を参照してください。特に、「 Developing Java Test Scripts」ドキュメントを参照してください。

テストスクリプトは、Javaソースコードの埋め込みスニペットでカスタマイズすることもできます( Javaコードブロック の章を参照)。Javaでコード化されたカスタムアクションで言語を強化するもう1つの方法は、v2.2以降のJavaのパラメータ化された呼び出しをサポート>する Runコマンド です。


1.3 本製品の特徴

HeartCore Robo Desktopは、機能が豊富で成熟した製品であり、以前のバージョンで開発された言語仕様に基づいて構築されています。一般的に言えば、HeartCore Robo Desktopは、以前の製品バージョンの上に追加の機能を提供しており、レポートジェネレータ、画像比較アルゴリズム、デスクトップクライアントなどの追加のコマンドとサービスプロバイダによって言語が拡張されています。以前の製品バージョンで設計されたスクリプトは、常にHeartCore Robo Desktop言語と互換性があります。一方、HeartCore Robo Desktopを使用して設計されたスクリプトは、エンタープライズ言語拡張を使用するかどうかに応じて、以前のバージョンと互換性がある場合とない場合があります。

これは、HeartCore Robo Desktop 4.4.2の言語拡張の完全なリストです。

  1. Script コマンド。
  2. Step コマンド。
  3. Reportコマンドの下にあるエンタープライズレポートプロバイダ
  4. 改善されたパフォーマンスと自動透過性(v2.1以降)およびRGBレベルの許容誤差(2.2以降)のサポートにより、 画像検索アルゴリズム(Compareto(search)) が強化されました。
  5. Screenshot コマンドでイメージ検索結果の描画をサポートしました(v2.1以降)。
  6. Input/Output (I/O)は、コマンドとして FileExcelをサポートしました (V2.1以降)。Excel操作機能およびエラー報告機能が強化され、v2.3以降でMS Excel 2007のXML形式(.xlsx)をサポートできるようになりました。
  7. Javaコードブロック の採用でネストされたJavaコードのサポート(v2.1以降、v2.2以降のインポート句のサポートが強化されました)
  8. イメージメタデータ とフォルダベースでのイメージコレクションのサポート (v2.2以降)
  9. オブジェクト検索( "object") Tesseract-OCR( "tocr") (v2.2以降)などの追加イメージ比較メソッドをサポート 。
  10. 強化された Run コマンドは、Javaテストスクリプトのパラメータ化された呼び出しをサポートします(v2.2以降)。
  11. Connect/Disconnectコマンドでのイメージクライアントをサポート(v2.2以降)
  12. 文字列(String)をテストして一般的なテキスト操作を実行できるようにするStringコマンドと拡張ブール式(ブーリアン) (v2.2以降)
  13. Timer コマンド(v2.3以降)
  14. フォールバック手順 (v2.3以降)
  15. オプションプロパティで拡張されたExitコマンド (v2.3以降)。
  16. ログ書出し(Log) マウス操作(Mouse) コマンド(v3.0以降)、
  17. 画像検索v2(Cimpareto(search2)) 画像ベースのテキスト認識(Compareto(text)) 比較方法(v3.0以降)
  18. Android Over ADB 接続(v3.1以降)
  19. ローカルデスクトップ 接続(v3.2以降)。
  20. _EXECUTION_SPEED_FACTOR 変数または対応する環境設定(v3.2以降)を使用 してスクリプトの実行を遅くしたりスピードアップしたりする機能 。
  21. iOSミラー 接続(v3.3以降)。
  22. Tesseract-OCR によって認識されたテキストの座標の取得 (v3.4以降)。
  23. Screenshot コマンドの "drawdiff"パラメータ (v3.4以降)を利用して、許容される画像検索差分をスクリーンショットに描画できます 。
  24. (v3.4以降) "nowait"と "kill" / "autokill"(v3.5.2以降) Exec コマンドパラメータを使用すると、非ブロッキングモードでローカルOSコマンドを起動し、 後でその  コマンドを終了することができます。
  25. マウスのピンチインアウト とズームのサポート(v3.5以降)
  26. Imagedoctor(イメージドクター) コマンド(v3.5以降)
  27. Tesseract-OCR比較メソッド の "mode"、 "filter"および "fontsize"パラメータ設定が可能 (v3.5以降)。
  28. Varf コマンド(v3.5.1以降)
  29. String matches とString indexofコマンド によるファジー(あいまい)テキストマッチング (v3.5.2以降)
  30. Image Search v2 アルゴリズム の「スケール倍率」パラメータ (v4.0以降)
  31. _DESKTOP_SIZE変数によるiOSミラー画面サイズの設定 (4.0.2以降)
  32. ClickDragコマンド(4.1以降)
  33. Pasteコマンド(4.1.2以降)
  34. Sendmailコマンドの遅延メール送信とSTARTTLS接続セキュリティのサポート (4.1.3以降)
  35. Logコマンド の 'terminal'パラメータサポート(4.1.3以降)。
  36. Reportコマンドで複数のレポート、ZIPフォーマット、'onexit'パラメータをサポート (4.1.3以降)
  37. Continue コマンドの サポート (4.1.3以降)
  38. Tesseract-OCR (4.1.4以降)で、指定された正規表現に一致するテキストセグメントを特定し、それらの座標を取得することを可能にする"パターン"パラメータの増設
  39. Click コマンドでの "move"、 "continue"、 "step"パラメータ (4.2以降)
  40. Dragコマンド の"continue"(続行)、"step"(ステップ)パラメータ (4.2以降)
  41. Compareto("diff")画像の違い(差分)(4.4以降)アルゴリズムの搭載
  42. ABBYY Fine Reader及びGoogle Vision OCRエンジンとの統合(5.0以降)
  43. 数値および論理関数のサポート(5.0以降)
  44. BrowserコマンドによるSelenium駆動型自動化のサポート(5.0以降)

2. 言語構文


2.1 言語構造

TPRスクリプト言語はテキストベースのプログラミング言語であり、TPRテストスクリプトは一般的にプレーンテキストファイルとして保存され、次の一般規則が適用されます。
TPRテストスクリプトは、次の規則に従って解釈されます。
# This is a comment
// This is also a comment
例:
This is a text containing spaces
- 複数のスペースによって 'This '、' is '、' a '、' text '、' containing '、' spaces 'の 6つのトークンに分解されます。

This "is a text" containing spaces
- 4つのトークン、 ' This '、 ' is a text '、 ' containing '、 ' spaces 'の ように解析されます。

This text contains "double quote (\")"
- 4つのトークン、 ' This '、 ' text '、 ' contains '、 ' double quote (") ' と解析されます。

Var SAMPLE_VAR_1="value with spaces" SAMPLE_VAR_2=no_spaces "NO_VAR=not_a_variable"
- 4つのトークンに解析されそれぞれ Var'SAMPLE_VAR_1="value with spaces"', 'SAMPLE_VAR_2=no_spaces' 'NO_VAR=not_a_variable'.となります。
第二及び第三のトークンはさらに識別子/値のペアに解析され、 4番目のトークンは、必要な形式に準拠していないため、解析されません。
  1. 最初のトークンは、コマンドまたはプロシージャーの名前とみなされ、コマンドおよびプロシージャーの表と照合されます。 コマンド名は大文字と小文字を区別しません。
  1. 次に、 コマンド構文 および プロシージャ の章で 後述するように、コマンド/プロシージャハンドラによってさらに処理および構文検証が行われます。

2.2 時間値

以下のような時間値 Wait コマンドの引数と wait / timeout / delay 他のコマンドのパラメータは、次の構文をサポートしています。
浮動小数点変数は英語形式でのみ受け入れられます。つまり '3.5h' 、3.5時間(3時間30分)として解析されます。 時間値には数値式を含むことができます。 「 数値式 」の章で構文をご確認ください。

例:
Wait "1.5d"
- 1日半(36時間)待つ

Press Ctrl+C wait=5s
- Ctrl + Cを押して5秒間停止します。

2.3 変数

変数は、 Var および Eval コマンド を使用して作成できます。 変数は、 大文字と小文字を区別する名前と値 を持ちます。 変数は、動的コンテンツ(値)が必要な場所( Var/Eval コマンド自体 を含む )で参照できます。 HeartCore Robo Desktopのテキストプリプロセッサは 、各コマンドラインを解析する前に {<var_name>}、すべての<var_name> 変数を変数値に置き換えます。

典型的な例:

Var PATH=/tmp
Typeline "mkdir -p {PATH}; cd {PATH}"

普通の数字からなる変数名は避けてください(例: 'Var 1 = "test"')。 これらの変数はプロシージャのパラメータ用に予約されており、警告なしでもプロシージャの実行によって書き換えられます。

変数が定義されていない場合、置換は実行されません。 次の例では、変数の定義はコメントアウトされているので'cd {PATH}'ではなく'cd /tmp'と入力します

# Var PATH=/tmp
Typeline "cd {PATH}"

プリプロセッサは 入れ子になった変数参照 をサポートしています。 この機能は、画面解析で一致した座標が格納された _SEARCH_X_<number> のような変数をスクリプトループ内で動的に生成する必要があるような '検索'画像比較を処理するために必要です。 次の例は、このような使用法を例示しています。 リモートデスクトップでアイコンを検索し、それぞれの実行をクリックすると変数の遷移が確認できます。

Compareto "search.png" method="search"

for (i=1; {i}<{_SEARCH_MATCH_COUNT}+1; i={i}+1) {
  # Nested variables compose the variable name from a suffix and an index
  Mouse click to=x:{_SEARCH_X_{i}},y:{_SEARCH_Y_{i}}
}

HeartCore Robo Desktop は、オブジェクト指向プログラミング(OOP)におけるメンバークラスおよびローカル変数と同様 の グローバル変数およびローカル変数の概念 もサポート しています。 変数型やスコープは明示的に宣言されていませんが、コード内のどこに作成されるかによって異なります。
  1. メインスクリプト本体で作成された変数は グローバルである と みなされ 、定義の時点からスクリプトの実行が終了するまでアクセス可能です。
  2. コードの構造化されたブロック内で作成された変数( procedure if/else および for 文)で作成された変数は ローカル変数 とみなされ(入れ子になったブロックを含む)そのコードのブロック内で利用可能です。
ローカル変数はグローバル変数をオーバーライドできません。 つまり 、コードブロックで Var または Eval コマンド を実行し 、ローカル変数名がすでに存在するグローバル変数名と一致する場合、ローカル変数を変更するよりもむしろグローバル変数を変更したほうが効率が良いでしょう。 次例で変数の原則を示します(スクリプト中のコメントでご確認ください)。

# Create a global variable
Var GLOBAL=global

if (1 == 1) {

    # Create a local variable and change the value of GLOBAL to 'modified'
    Var LOCAL=local GLOBAL=modified

    if (1 > 0) {
        Var LOCAL2=local2

        # Here GLOBAL, LOCAL and LOCAL2 are available.
        # The command will type "GLOBAL=modified, LOCAL=local, LOCAL2=local2"
        Type "GLOBAL={GLOBAL}, LOCAL={LOCAL}, LOCAL2={LOCAL2}"
    }

    # Here GLOBAL and LOCAL are available and LOCAL2 doesn't exist any more.
    # The command will type "GLOBAL=modified, LOCAL=local, LOCAL2={LOCAL2}"
    Type "GLOBAL={GLOBAL}, LOCAL={LOCAL}, LOCAL2={LOCAL2}"

}

# Here GLOBAL is available and LOCAL and LOCAL2 don't exist any more.
# The command will type "GLOBAL=modified, LOCAL={LOCAL}, LOCAL2={LOCAL2}"
Type "GLOBAL={GLOBAL}, LOCAL={LOCAL}, LOCAL2={LOCAL2}"

Include Run コマンドで 読み込まれたスクリプト内で定義された変数にも同じ規則が適用され ます。

HeartCore Robo Desktopは、任意のテストスクリプトから参照される事前定義された(明示的に呼ばれる)変数セットを提供します。 実行開始日 や デスクトップサーバーのホスト名、実行されたスクリプトの名前など、さまざまな有用データが含まれています。定義済みの変数の完全なリストについては、 Var コマンドの仕様を参照ください 。

CLIを使用して、スクリプト実行時に変数値を上書きすることができます。HeartCore Robo Desktop 4.4 のCLIオプション-v/--variable 指定されたパラメータを参照ください(資料)。 これにより、特定のテストスクリプトの実行をパラメータ化したり、テストスクリプトコード内の機密情報(ユーザ名、パスワードなど)の露出を回避することができます。 CLIを介して設定すると、変数は「読み取り専用」になり、スクリプト実行の全期間にわたってその値が固定されます。 任意の Var/Eval スクリプトで実行され、この変数を変更するコマンドは無視され、変数値へ影響しません。 これは、明示的(定義済み)の変数を含むすべての変数に適用されます。

互換性に関する注意: VNCRobotはこれまでバージョン1.2.5まで変数の置換に正規表現を使用していました。 バージョン1.3以上(最新のRobot 2.0を含む)はプレーンテキスト処理を使用し、バージョン1.3.4では入れ子になった変数のサポートも追加されています(これについては後で説明します)。 Preferences ウィンドウに は、 これらの新しい機能を無効にし、1.2.x互換モードに戻る オプションがあり ます。 レガシーモードでは、変数名に正規表現の特殊文字が含まれないようにする必要があることに注意してください。 正規表現に慣れていない場合は、アルファベット文字( 'a' - 'z'、 'A' - 'Z')、数字( '0' - '9')およびアンダースコア( '_')のみを使用するようにしてください。

2.4 プロシージャ

HeartCore Robo Desktopは簡易なプロシージャをサポートしています。 プロシージャとは、コマンドとして利用できる名前付きブロックで必要な形式で記述され、作成後はその名前を呼び出すことによってブロック内の動作を実行できます。 プロシージャには、ヘッダー、本文、終了中括弧があります。 プロシージャ形式は次のとおりで日本語も使用することができます。

procedure <procedure_name> {
command1
command2
...
commandN
}

次の規則が適用されます。
procedure "Perform action A" {
...
}
...
"
Perform action A"
次のように、任意の数のスペース区切りパラメーターをプロシージャ呼び出しに渡すことができます。

<procedure_name> parameter1 "parameter2 with spaces" .... parameterN

パラメータは、名前として '0'、 '1'、... 'N'という名前の変数として使用できます。 インデックス0の最初の変数には常にプロシージャ名が含まれます。 プロシージャが受け入れるパラメーターは、プロシージャ・ヘッダーのどこにでも宣言されていないことに注意してください。

入力引数の数は、バージョン2.1以降の_PROCEDURE_ARG_COUNT変数から使用できます。 これは、パラメータの数に応じて振る舞いを分岐させたり、省略されたパラメータをデフォルト値に設定するために使用できます。

次例は、可変イメージ形式のスクリーンショットを作成する簡単なプロシージャ(手順)を記述して呼び出す方法を示しています。 デフォルト値の割り当て( Var拡張子= png )は 、スクリプトが別の方法でエラーを報告するため、 パラメータの割り当て( Var拡張子= {2} )の 後に指定する必要が あります。 これは、正しいコマンド構文を検証するために、if / else構造に関係なく、コンパイル時にすべての変数代入を実行するコンパイラの制限によるものです。

# Procedure definition. Expected parameters are:
# {1} ... file name without extension
# {2} ... image extension (either jpg, jpeg or png). Defaults to "png" when omitted.
procedure take_screenshot {
    Var extension={2}
    if ({_PROCEDURE_ARG_COUNT} == 1) {
        Var extension=png
    }
    Screenshot {1}.{extension} desc="This screenshot was created by procedure called {0}"
}

take_screenshot image1 jpg
take_screenshot image2


プロシージャは、プロシージャ本体内で最後に実行されたコマンドの終了コードを常に返します。 特定の終了コードを持つプロシージャを終了するには、 Exit コマンドを 使用して、scope パラメータを設定します。 例を次に示します。

# Procedure definition
procedure exit2 {
    Exit 2 scope=procedure
}

# Procedure call
exit2

if ({_EXIT_CODE} == 2) {
     # Any code here will be executed because exit2 戻り値 2
}

パラメータがなければ、コードが正しいかどうかを解決することができないため、プロシージャの内容はプロシージャ定義でコンパイルされません。 HeartCore Robo Desktopはプロシージャコールをコンパイルします。 あなたがタイプすると

take_screenshot image3 tiff

'tiff'はJavaでサポートされているイメージフォーマットではないため、HeartCore Robo Desktopはこの行でエラーを報告します。サンプルプロシージャ本体のScreenshotコマンドでコンパイルエラーが発生します。

2.5フォールバックプロシージャ

HeartCore Robo Desktopバージョン2.3から、フォールバックプロシージャが導入されました。 これらは、特定の条件(イベント)が満たされたときに自動的に呼び出されるプロシージャの予約(設定)です。 フォールバックプロシージャ以外の場合は標準プロシージャであり、 前述 のすべての一般的なプロシージャルールが 適用されることを意味します。 要するに、

(1)名前は大文字と小文字を区別しない
(2)プロシージャが Include または Run コマンドによってスクリプトにリンクされた別のファイルにある可能性があり
(3)プロシージャはそれを呼び出すコードの前に定義

されなければなりません。
次の例は、フォールバックプロシージャを使用する方法を示しています。 両方とも、特定の終了コードを使用してスクリプトを終了します。 さらに、比較したものは、後のデバッグを可能にするスクリーンショットを作成します。 この例は、 SendMail コマンド によるEメールの送信や、 Pause によるスクリプトの一時停止など、他の適切なアクションを実行するために簡単に拡張できます 。

procedure DisconnectFallback {
  Exit 3
}

procedure ComparisonFailureFallback {
  Screenshot comparison_failure.png
  Exit {1}
}

// Script body

Connect localhost:1 password=welcome
Compareto button.png method=search
// ...



2.6数値式

v1.3以降、数値式がサポートされています。 次の規則が適用されます。
数値式は、言語内の任意の場所で使用できます。

# Wait 1 hour - in milliseconds
Wait "1*60*60*1000"

# Search for an image and then click onto it 10 points from its left upper corner
Compareto "pattern.png" method="search"
Mouse click to="x:{_SEARCH_X}+10,y:{_SEARCH_Y}+10"

使用したい数値式に基づいて変数を定義する場合は Varの の代わりに Evalコマンドを 利用してください。例えば

'Eval HOUR_IN_MS=1*60*60*1000'.

2.7ブール式(ブーリアン)

ブール式 if/elseforなどの構築を容易にします。 次の演算子がサポートされています。 バージョン2.2以降では、 変数の存在 をテストして文字列を比較できるようにする一連の演算子もサポートしています
ブール式は 、以下の例に示すように、 if/elsefor によって排他的に使用されます。 ブール式を Eval コマンドに 渡して、 指定した変数に 'true'または 'false'の結果を設定することもできます 。

# Look for an image on the remote desktop
Compareto "pattern.png" method="search"

# Exit if the image is not found,
if ({_EXIT_CODE} > 0) {
    Exit 1
}

詳細については、 If / Else文 および For文 の章を参照してください。

2.8 関数

関数は、リリース5で導入されました。if / elseやfor文、Evalコマンド、およびこの仕様で数値式をサポートするその他のコマンドパラメータなど、ブール式または数値式が必要な場所であればどこでも使用できます。関数名は大文字と小文字を区別しません。たとえば、次の 'for'ステートメントは10回繰り返します。

for for (i=0; i<MAX(6,10,9); i=i+1) {
...

}

サポートされている機能(カスタム機能が必要な場合はサポートにお問い合わせください)
関数 説明
NOT() 論理否定、式がゼロでない場合は1(真を意味する)。
IF(条件、value_if_true,value_if_false) 条件がtrueと評価された場合は一方の値を返し、falseと評価された場合は他の値を返します。
RANDOM() 0から1の間の乱数を生成します。
MIN(e1,e2, ...) 与えられた式の最小値を返します。
MAX(e1,e2, ...) 与えられた式の最大値を返します。
ROUND(式,精度) 値を特定の桁数に丸めます。現在の丸めモードを使用します。
FLOOR() 値を最も近い整数に切り捨てます。
CEILING() 値を最も近い整数に切り上げます。
LOG() 式の自然対数(基数e)を返します。
LOG10() 式の常用対数(10を底とする)を返します。
SQRT() 式の平方根を返します。
SIN() 角度の三角関数のサインを返す(度単位)。
COS() 角度の三角余弦を返します(度単位)。
TAN() 角度の三角関数の接線を返します(度単位)。
COT() 角度の三角コタンジェントを返します(度単位)。
ASIN() asinの角度を返します(度単位)。
ACOS() acosの角度を返します(度単位)。
ATAN() atanの角度を返します(度単位)。
ACOT() acotの角度を返します(度単位)。
ATAN2(x,y) atan2の角度を返します(度単位)。
SINH() 値の双曲線サインを返します。
COSH() 値の双曲線余弦を返します。
TANH() 値の双曲線正接を返します。
COTH() 値の双曲線余接を返します。
SEC() 割線を返します(度単位)。
CSC() 余割を返します(度単位)。
SECH() 双曲線正割を返します(度単位)。
CSCH() 双曲線余割を返します(度単位)。
ASINH() 双曲線サインの角度を返します(度単位)。
ACOSH() 双曲線余弦の角度を返します(度単位)。
ATANH() 値の双曲線正接の角度を返します。
RAD() 度単位の角度をラジアン単位のほぼ同等の角度に変換します。
DEG() ラジアン単位の角度を度単位のほぼ同等の角度に変換します。
FACT() ラ整数の階乗値を戻します。0または負数の場合は1を返します。


2.9 if/Else 文

HeartCore Robo Desktopは if/else 、Javaで使用される同様の機能と構文を サポート しています。 形式は次のとおりです。

if (<boolean expression>) {
    <commands>
} else if (<boolean expression>) {
    <commands>
} else {
    <commands>
}

'else if' そして 'else' 枝はオプションです。 'else if' 枝 の数に 制限はありませんが、 'else' は1つだけ記載できます。 囲み中括弧 '{' '}' は 、 上に表示されているとおり、関連する if/else/else/if キーワード と同じ行になければならないことに 注意してください 。ただし、構造化ブロック全体を終了する 右中括弧 '}' は唯一の例外であり、1行で単独でなければなりません。

例:

# Look for an image on the remote desktop
Compareto "pattern.png" method="search"

# Exit if the image is not found,
if ({_EXIT_CODE} > 0) {
    Exit 1

# If the image was found more times, take a screenshot and add a warning to the HTML report
} else if ({_SEARCH_MATCH_COUNT} > 1) {
    Screenshot unexpected.png
    Warning "Unexpected behavior - the template image was found {_SEARCH_MATCH_COUNT} times!" image=unexpected.png
}

If/else
文は、他の構造化プログラミング言語で通常のように、 for 文などと入れ子構造で結合することができます。

2.10 For 文

HeartCore Robo Desktopは、特定の条件が満たされている限り一連の値を繰り返したりループしたりすることができるfor文をサポートしています。 この for 文には2つの一般的な文形があります。

1.条件式の
for文内で 、指定されたブール式が真である限り実行されます。

for (<statement1>; <boolean expression>; <statement2>) {
    <commands>
}

ブール式がすべてのループの前に評価されているので、ループの中のコマンドは、式が最初から偽になる場合はまったく実行されません。 ステートメント statement1statement2 は、 Eval コマンド を使用して評価され、 次のような構文を持つ必要があります

'<variable>=<numeric expression>'

それそれの値は空でもかまいません。

次の例は変数 'index' が 0〜5 の範囲で変数の値が動的に設定されループしています 。両方のコードスニペットに「012345」と入力します。

for (index=0; {index}<6; index={index}+1) {
    Type {index}
}

Eval index=0
for ( ; {index} < 6; ) {
    Type {index}
    Eval index={index}+1
}

バージョン2.3以降では、より単純な構文もサポートされています。この場合、ステートメントヘッダー内の変数呼び出しで中括弧は省略されます(例:

for (index=0; index<6; index=index+1) {
}
 

2.定義済みの値のセットに対するステートメントの反復
このフォームでは、事前定義された値のセットを反復処理できます。

for <variable name> in <list of space separated values> {
    <commands>
}

次の例では、「私は英語、スペイン語、ブラジルのポルトガル語を話す」という文を英文で入力します。

Type "I speak "
for language in English Spanish "Brazilian Portuguese" {
    if ("{language}" == "Brazilian Portuguese") {
        Type "{language}."
    } else {
        Type "{language}, "
    }
}


値セットは変数で指定することもできます。 バージョン3.0.1以降では、変数で指定されたスペースを含む値をサポートしています。 次のコードは、前の例を変数で指定された値セットで示しています。 変数呼び出しは単一の値として扱われるので、二重引用符で囲まれてはならないことに注意してください。

Type "I speak "
Var VALUES="English Spanish \"Brazilian Portuguese\""
for language in {VALUES} {
    if ("{language}" == "Brazilian Portuguese") {
        Type "{language}."
    } else {
        Type "{language}, "
    }
}



for 文の実行は、break コマンドによって中断することができます 。 現在のループは、 continue コマンド によってスキップできます。 ネストされたループがある場合、 break/continue コマンドは最も内側の for ステートメント(ブロック)に 適用されます 。
次の例は 、リモートデスクトップが更新を停止するまで実行の保留をWaitfor文と for 文 との組み合わせで使用する方法を示しています。

# Infinite loop
for (; 0 == 0; ) {

    # Wait for at least 20% update of the remote screen.
    # If it doesn't update for 10 seconds, break the loop.
    Waitfor update extent=20% timeout="10s" ontimeout="break"
}

2.11 戻り値

v1.3以降のすべてのコマンドは、変数_EXIT_CODEに利用可能な整数値を返します 。その変数値で 0(ゼロ)の値は通常、成功を意味し、他の数字は失敗を示します。 定義された終了コード値とその意味については、使用コマンドのドキュメントを参照してください。

戻り値(「終了コード」とも呼ばれる)は、スクリプトの実行を制御し、予期した結果と予期しない結果の両方を処理する方法を定義するために効果的に使用できます。 Compareto コマンドなどは、比較OKであれば 0 、そうでなければ画像比較パスとゼロ以外の値を返します。 例えば Waitfor コマンドでは、予期されるイベントが受信されたときに0を返し、タイムアウトに達したときにゼロ以外の値を返します。 次例は、その戻り値を使用する方法を示しています。

# Alt+F2 opens the Run Program window on Gnome
Press Alt+F2 wait=3s

# Start the Gnome Text Editor
Typeline gnome-text-editor

# Wait for the remote desktop update
Waitfor update extent=30% timeout="10s"

# If Waitfor 戻り値 non-zero value, the timeout was reached
# and the text editor probably failed to open
if ({_EXIT_CODE} > 0) {

    # Take a screenshot
    Screenshot failure.png

    # Send the screenshot via E-mail to the tester
    Sendmail to="tester@dummyserver.com" from="robot@dummyserver.com" server="mail.dummyserver.com" subject="Gnome editor failed to open!" attach="{_REPORT_DIR}/failure.png"

    # Pause the execution and wait for the tester to fix it
    Pause "Paused because Gnome Text Editor failed to start"
}

if/elseforbreak 呼び出しは値を返さないことに 注意してください 。 これらのコマンドのいずれかの後 に 変数 _EXIT_CODE に アクセスする と、直前に実行されたコマンドの終了コードが代入され、利用できます。

2.12 Javaコードブロック

Javaコードブロックを使用すると、TPRスクリプトから直接Javaコードを呼び出すことができます。 スクリプト言語では対応できない特定のカスタム機能が必要な場合Javaコードで処理をサポートするように設計されています。

Javaコードブロックを適切に動作させるには、JDKでRobotを実行する"java -jar robot.jar"ではなく 、 "java -classpath <libs> com.tplan.robot.ApplicationSupport" コマンドを使用してください。前者構文では、一部の環境でJavaコンパイラのクラスパスを生成できないため、Javaソースコードのコンパイルと実行に失敗します。 詳細は 、「リリースノート」内の 「スタートアップ」の章 を 参照して ください。

Javaコードブロックの一般的な構文が続きます。 import句のサポートはv2.2で提供されていたことに注意してください。 以前のバージョンでは、完全修飾名でクラスを参照するか、環境設定で管理されているテストクラステンプレートにインポートを追加する必要があります。

java {
  <import clauses>
  <Java code>
} endjava

このような各ブロックは、内部的に DefaultJavaTestScript クラスを 拡張したJavaテストスクリプトに変換され 、ブロック内のJavaコードが test() メソッドに 挿入されます。クラス・テンプレートはJavaコード・ブロック構成で公開されており、「プリファレンス」ウィンドウでカスタマイズできます。 次の例は、例を示しています。

Javaコードブロック

結果のJavaテストスクリプトクラス
java {
  import java.util.Date;
  System.out.println("Current date: "+new Date());
} endjava
            
             import   com.tplan.robot.scripting.*;  
import java.io.*;
import java.util.*;
import java.util.Date;

public class SomeDynamicName extends DefaultJavaTestScript {
public void test(){
System.out.println( " Current date " + New date());
}
}
このメカニズムにはいくつかの実用的な影響があります。
次の例は、変数の共有を示しています。 スクリプトは最初にテンプレートパスを "C:/templates"に設定します。 Javaコードは、コンテキスト内のパスを取得し、ディレクトリ内のすべてのPNGファイルをリストし、FILE <n>という番号の変数としてファイルカウンタFILECNTと共にコンテキスト変数に格納します。TPRテストスクリプトが再開すると、リストされたファイルを繰り返し処理し、各PNGファイルに対してイメージ比較を実行します。

Var _TEMPLATE_DIR="C:\templates"

# This line declares dummy values of variables populated by the Java code.
# It prevents the compiler from reporting error in the for() loop and CompareTo command.
Var FILECNT=0 FILE1=dummy.png

java {
         File files[] = getContext().getTemplateDir().listFiles();
         int i = 0;
         for (File file : files) {
             if (file.isFile() && file.getName().endsWith(".png")) {
                 i++;
                 getContext().setVariable("FILE"+i, file.getName());
             }
         }
         getContext().setVariable("FILECNT", Integer.toString(i));
} endjava

for (i=1; {i}<{FILECNT}+1; i={i}+1) {
  Compareto "{FILE{i}}" method=search
}



3.コマンドの構文


HeartCore Robo Desktop 4.4は以下のコマンドをサポートしています(カテゴリはアルファベット順にソートされています)

。3.1 デスクトップコマンド 3.2 管理&実行管理コマンド 3.3 レポートコマンド

3.4 I/O コマンド


3.1 デスクトップコマンド


3.1.1 Browser


説明
次へ | 前へ | 次へ トップ^
Browser - Selenium駆動のWebブラウザを自動化します(v5以降)。テクノロジと構成手順の概要は、別の文書で管理されています。このコマンドは以下のアクションをサポートします。
  • 「Browser open」は選択されたウェブブラウザを開き、指定されたウェブページをロードします。
  • 「Browser find」は指定された基準でWebページ内の要素(HTMLタグ)を検索し、それにオプションのアクション(クリック、入力、送信、消去)を適用します。
    コマンドがアクションを指定せず、要素が見つからない場合は、スクリプトを続行することができます。検索結果(見つかった/見つからなかった)は、コマンド終了コードと要素属性を含む_WEB変数の存在によってスクリプトに示されます。 コマンドがアクションを指定していても要素が見つからない場合は、スクリプトを終了します。この動作は、クリックおよびドラッグコマンドと一致しています。 「存在する場合は要素に動作を適用して続行する」のような動作をスクリプト化するには、最初の動作で要素の存在を確認し、2番目の動作で動作を適用する「Browser find」コマンドを使用します。
  • 「Browser close」はブラウザを閉じてSeleniumセッションを終了します。

  • 構文
    Browser open browser=<browser_code> url=<web_page>
    *赤色は必須パラメータを示します

    オプション
    browser =<browser_code>

    - ブラウザのコード名 現在サポートされている値は次のとおりです。
    url =<web_page>
    - ロードするWebページ、たとえば "https://www.heartcore.co.jp"

    Browser find [elaction=<action>] [elnumber=<element_number>] [eltext=<text>] [elindex=<dropdown_item_index>] [elvalue=<dropdown_item_value>] [<attributes>]

    オプション
    elaction =<action>

    - 結果の要素に適用するオプションのアクション。検索によって複数の要素が生成された場合、アクションは最初の要素、またはelnumberパラメーターで指定された番号のいずれかに適用されます。サポートされているアクションは以下のとおりです。

    elnumber =<dropdown_item_index>
    - 検索で複数の要素が生成される場合、elnumber パラメーターを使用して、elaction アクションを適用する要素を指定できます。

    eltext =<text>
    - elaction アクションが "type" の場合、パラメータはテキストエレメントに入力するテキストを指定します。アクションが "select" の場合、このパラメータを使用して、選択するドロップダウンの表示テキストを指定します。これは、elaction = type パラメーターと一緒に使用する必要があります。

    elindex =<dropdown_item_index>
    - 選択するドロップダウン項目のインデックス。インデックスはゼロから始まります。 "select " HTML タグで表される要素のドロップダウンにのみ適用されます。

    elvalue =<dropdown_item_value>
    - 検索および選択するドロップダウン項目の値。これは、 "option" HTML タグの "value" 属性によって指定されます。ドロップダウン要素 ("select"HTML タグ) にのみ適用されます。

    <attributes>
    - 次のような名前=値のペアの形式の属性(検索基準)のリスト。

    Browser close

    - "close"操作はパラメータを受け付けません。

    使用例
    Browser open browser=edge url=https://www.heartcore.co.jp




    3.1.2 Connect


    説明
    次へ | 前へ | 次へ トップ^
    Connect - デスクトップに接続します。 プロトコル、ホスト名またはIPアドレス、およびオプションのポートは、引数のURLで指定します。 接続が確立されると 、 _MACHINE および _DISPLAY の暗黙の変数 が更新されます。 サーバー接続の集中障害点を設定する方法については、 DisconnectFallback フォールバックプロシージャ を 参照してください 。

    構文
    Connect <URL> [user=<user>] [password=<password>] [force=<false|true>] [onpass=<command>] [onfail=<command>] [params = <parameters>] [paramseparator = <delimeter>]
    *赤色は必須パラメータを示します

    オプション
    URL

    - 引数は既知の 接続名 (v4.2以降)であるか、または <protocol>://<host_or_IP>[:<port>] 以下で説明するレガシー形式を除く有効なURLで なければなりません。 プロトコルは、サポートされているプロトコルコードの1つと等しくなければなりません。HeartCore Robo Desktopはデフォルトで2つのクライアント(プロトコル)をサポートしています:

    1. リモートフレームバッファ(RFB)v3.3 クライアント(プロトコルコード "rfb" )。 Virtual Network Computing または VNC としてよく知られてい ます。 クライアントは互換性があり、TightVNC、RealVNC、UltraVNCなどのVNCサーバーに適合するRFB v3.3に接続できます。 テスト済みの環境のリスト については、「 リリース・ノート」 のドキュメントを 参照してください 。 クライアント実装の詳細は、 RfbClientImpl クラスのドキュメントで管理されています。
    2. Image Client (プロトコルコード "file" ; v2.2以降)では、ファイルからイメージをロードし、ライブデスクトップと同じ方法でテストできます。 クライアントはPNG、BMP、WBMP、GIFなどのJava互換のロスレス画像フォーマットをすべてサポートしています。 ファイルが更新されたときにクライアントがイメージをリロードするメカニズムがあるため、クライアントは、ファイルシステム内のイメージへのグラフィカル出力を生成するアプリケーションのテストにも使用できます。 接続URLは標準形式の "file:// <image_path>"です。 ZIPファイルまたはJARファイル内にバンドルされた相対パスとイメージの特別な処理が含まれています。 詳細については、 ImageClient クラスのドキュメントを 参照してください 。
    3. Android over ADB (プロトコルコード "adb" 、3.1以降)では、 Androidデバッグブリッジ(ADB)を 介してAndroidデバイスを自動化できます 。 詳細については、 クライアントのマニュアル を参照してください 。
    4. ローカルデスクトップ (プロトコルコード "java" 、3.2以降)では、ローカルデスクトップに表示されるアプリケーションやシステムコンポーネントを自動化できます。 詳細については、 クライアントのマニュアルを 参照してください 。
    5. iOS Mirror (プロトコルコード "apple" 、3.3以降)では、AirPlayのスクリーンミラーリングとVNCサーバーの組み合わせを使用してiOSデバイス(iPhone、iPad)を自動化することができます。 プレーンなVNC接続と比較して、このソリューションははるかに高速な画面パフォーマンスを備えており、ゲームやグラフィックプログラムなどのOpenGLコンテンツをサポートしています。 詳細については、 クライアントのマニュアルを 参照してください 。

    HeartCore Robo Desktop4.4は他のクライアントをプラグインできるインタフェースを提供しているため、追加のプラグインでサポートされるプロトコルが増える場合があります。

    portが明示的に指定されていない場合、デフォルトは プロトコル固有のよく知られたポートになります 。 たとえば、RFB / VNCサーバーはポート5900でデフォルトで実行され、Java RMIはポート1099で開始され、RDP(Windowsターミナルサービス)ではデフォルトで3389になります。Linux / Unix上で動作するVNCに接続するには、デフォルトのRFBポートがX-Windowsサーバーによって占有されているため、5901以上のポートを指定してください。

    URLでプロトコルが省略されている場合、スクリプトはRFB(VNC)プロトコルをデフォルトとし、 VNCRobot 1.xとの下位互換性 を提供します 。 この場合のポート番号は 、ポート番号から5900を引いた値に等しい 表示番号 として扱われ ます。ダイレクトポートは、このモードではダブルコロンで指定できます。 たとえば、 " localhost:1" と " "localhost::5901" は、同じローカルVNCサーバーをポート5901で実行していることを指します 。 アドレスは、"rfb://localhost:5901" となります 。

    user= <username>
    - デスクトップに認証するユーザー名(ID)。 このパラメータは 、将来の使用 やサードパーティの拡張機能のために予約されており、現在サポートされているプロトコルでは使用されていません。

    password= <password>

    - デスクトップサーバーに認証するためのパスワード。 サーバーがパスワードを要求しないように構成されている場合、このパラメーターは無視されます。

    force = <false|true>
    - 同じサーバーとポート(ディスプレイ)がすでに接続されている場合、再接続は実行されません(force = false)。 現在の接続を強制終了してサーバに再接続するには、このパラメータをtrueに設定します。 デフォルト値はfalseです。

    onpass=<command>

    - サーバーが正常に接続されたときに実行するコマンド。 それは単一のコマンドでなければなりません。 一連のコマンドを呼び出すには、プロシージャーまたは後続の if / else構造を 使用して、コマンドの終了コードをテストします。

    onfail=<command>

    - 接続が失敗したときに実行するコマンド。 それは単一のコマンドでなければなりません。 一連のコマンドを呼び出すには、プロシージャーまたは後続の if / else構造を 使用して、コマンドの終了コードをテストします。

    params=<param_name_and_value_pairs>

    - カスタムクライアントパラメータのリスト。 このオプション paramseparator は、現在サポートされているプロトコルでは使用されておらず、将来の使用 やカスタム拡張のために予約されています。 これらは、第三者のクライアントプラグインへのログオンデータの一般的な転送をサポートすることを目的としています。

    リストには、カンマ( ',')で区切られた任意の数のパラメータ名と値のペア、または paramseparator 引数で 指定されたカスタムセパレータを含めることができ ます。 たとえば、2つのパラメータを指定する PARAM_A=value_A   と   PARAM_B=value_B   のような場合、"PARAM_A,value_A,PARAM_B,value_B" となります。

    paramseparator = <delimeter>

    - params 引数で 指定されたパラメータ名と値のリストのオプションのセパレータ 。 指定されていない場合は、デフォルトでカンマ( "," )になります。

    戻り値
    このコマンドは、接続に失敗したときに0(ゼロ)、成功の場合は1を返します。 このコマンドは、たとえば、UltraVNCサーバーがMS Logonを要求したときなど、サポートされていない認証方法で失敗すると値10を返します。

    使用例
    Connect rfb://localhost:5901 password=test
    Connect localhost:1 password=test
    Connect localhost::5901 password=test

    - 3つの例はすべて同じで、ローカルマシンのディスプレイ番号1(ポート5901)で動作するVNCサーバーに接続します。 パスワード認証が必要です。 これは、通常、ポート5900がX-Windowsサーバによって占有され、VNCサーバが通常ポート5901以上で動作するLinux / Unixシステムでは一般的です。


    Connect
    "Local VNC"

    - Connect Manager に登録された「ローカルVNC」接続に接続します。 サーバーのURLとパスワードは接続レコードからロードされます。

    Connect rfb://mywindows.companyxy.com:5902 password=mypassword force=true onfail="exit 2"

    - mywindows.companyxy.comで呼び出されたサーバー上で実行されているRFB(VNC)サーバーに接続します 。 ツールがすでにこのサーバーに接続されている場合は、セッションを終了して再接続します。 接続に失敗した場合は、終了コード2でスクリプトの実行を終了します。

    Connect file://C:\testdata\images\screen.png

    - 指定したイメージをロードし、デスクトップの代わりに表示します。

    Connect file://C:\testdata\images\images.jar!/data/screen.png

    - 指定されたJARファイルに/data/screen.pngとして圧縮されたイメージをロードし(ZIPもサポートされています)、デスクトップの代わりに表示します。

    Connect file://screen.png

    - 指定したイメージをロードし、デスクトップの代わりに表示します。 URLが相対的なので、イメージは製品インストールパスからロードされます。

    Connect file://{_SCRIPT_DIR}/screen.png

    - このコマンドを呼び出すテストスクリプトと同じフォルダにあるイメージをロードし、デスクトップの代わりに表示します。


    Connect rfb://mywindows.companyxy.com:5902 password=mypassword force=true onfail="exit 2"

    - 呼び出されたサーバー上で実行されているRFB(VNC)サーバーに接続します mywindows.companyxy.com 。 ツールがすでにこのサーバーに接続されている場合は、セッションを終了して再接続します。 接続に失敗した場合は、終了コード2でスクリプトの実行を終了します。

    Connect adb://default

    - USBケーブルを使用してローカルPCに接続されている最初のAndroidデバイスに接続します。

    Connect adb://MB104PY14322

    - USBケーブルを使用して、指定したシリアル番号のAndroidデバイスに接続します。

    Connect java://localhost

    - ローカルデスクトップに接続します。

    Connect apple://192.168.100.8:5901

    - iOSミラー 接続 を使用してiOSデバイスに 接続します。 この例では、デバイスがネットワークに接続されており、指定されたIPアドレスを持ち、5901のポートでVNCサーバーを実行していると想定しています。


    3.1.3 Dinconnect


    説明
    次へ | 前へ | トップ^
    Disconnect - デスクトップサーバーから切断します。 接続がない場合、コマンドは何も行いません。 接続が閉じられると、定義済み変数 _MACHINE および _DISPLAY がクリアされます。

    書式
    接続解除する

    戻り値
    それは切り離しに失敗した接続解除に成功の場合は0(ゼロ)、失敗したら1を返します。

    使用例
    Disconnect

    - 現在接続されているデスクトップから接続解除します。


    3.1.4 Mouse


    説明
    次へ | 前へ | トップ^
    Mouse - マウスイベントを実行します。 このコマンドは、マウスポインタの移動、マウスのクリック、プレス、リリース、ドラッグ、マウスホイールのイベントなど、幅広いマウス操作を自動化できます。 このコマンドは、マウスの押下、マウスの移動、およびマウスのリリースイベント(2.0.2以降)のシーケンスで構成されたカスタムドラッグもサポートしています。 構成されたイベント(クリック、ドラッグ)が失敗することを確認したい場合は、較正パラメータのマウスコマンドの設定を確認ください。

    現在のマウスポインタの座標は、 _MOUSE_Xおよび_MOUSE_Y の動的変数 (バージョン2.1以降)を介しスクリプトで使用できます 。

    書式
    Mouse [<modifier_1>+ ... +<modifier_N> +]<EVENT_ID> [btn=<BUTTON_NAME>] [modifiers=<modifier_1>+ ... +<modifier_N>] [to=[x:<x>][,y:<y>]] [from=[x<x>][,y<y>]] [center= [x:<x>] [,y:<y>]] [start=<number>] [end=<number>] [count=<number>] [wait=<time>]
    赤色は必須のパラメータを示します。

    オプション
    modefier

    - Shiftキー、Altキー、Ctrlキーの組み合わせは、Ctrl + Alt + Shiftキーのように+記号で区切ります。

    event_id

    - サポートされるイベントは次のとおりです。

    btn

    - このパラメータは、クリック、プレス、リリース、ドラッグするマウスボタンを識別するために使用されます。 指定できる値は "left""middle" および "right" です。

    modefiers

    - このパラメータは、マウスイベント修飾子を指定する別の方法を提供します(もう1つは、イベントIDの前に修飾子を置く方法です)。 値は、Shift + Alt + Ctrlの組み合わせでプラス記号(+)で区切って指定することもできます(例: "Ctrl + Alt + Shift")。 イベントIDとともに修飾子が指定されている場合は、このパラメーターが優先されます。

    to=[x:<x>][,y:<y>]

    - ターゲット座標。

    座標は ' x:<x>,y:<y> 'の 書式を持ち 、各座標はピクセル(例: 'x:225')またはパーセンテージ(たとえば 'x:23.5%' ) で指定できます 。 xまたはyが省略されている場合は、現在のマウスポインタの位置が不足している座標を決定するために使用されます。

    from=[x:<x>] [,y:<y>]

    - 開始座標

    座標は ' x:<x>,y:<y> 'の 書式を持ち 、各座標はピクセル(例: ' x:225 ')または相対的なパーセンテージ(例: 'x:23.5%' ) で指定できます 。 相対座標は、整数でない場合は丸められます。 xまたはyが省略されている場合は、現在のマウスポインタの位置が不足している座標を決定するために使用されます。

    center=[x:<x>] [,y:<y>]

    - ピンチ/ズーム中心点(オプション)。 これは、 "pinch""zoom" アクションでのみ使用され ます。 パラメータを省略すると、アクションはデフォルトでスクリーン中心になります。

    座標は ' x:<x>,y:<y> 'の 書式を持ち 、各座標はピクセル(例: ' x:225 ')または相対的なパーセンテージ(例: 'x:23.5%' ) で指定できます 。 相対座標は、整数でない場合は丸められます。 xまたはyが省略されている場合は、現在のマウスポインタの位置が不足している座標を決定するために使用されます。

    start=<number> end=<number>

    - ピンチ/ズームの開始距離と終了距離。 これは、 "pinch""zoom" アクションでのみ使用されます。 パラメータは常に一緒に指定する必要があります。 省略された場合、アクションは中心点の位置と現在の画面サイズに基づいてデフォルト値を計算します。

    距離は、ジェスチャの開始点( "start" )および終了点( "end" )において、 指が何画素離れているかを指定します。イベントが "pinch" 始点であるときは 、指が互いに近づくため、最初の距離よりも必然的に大きくなければなりません。 "zoom" イベントは、逆の設定が必要です。 距離は、指がお互いに接近しすぎないように(最低でも30ピクセル)、または画面の境界線に10ピクセルより近くなるように指定する必要があります。 

    count=<number>

    - マウスイベントが何回実行するか設定します。 デフォルト値は1です。この値はクリックイベントとホイールイベントでのみ意味を持ち、他のイベントタイプでは無視されます。

    wait= <time>

    - イベントが送信された後に待機する時間。 次のコマンドが " Wait <time> " だった場合と同じ効果があります 。 値は、ミリ秒数または有効な 時間値 のいずれかでなければなりません 。 デフォルト値は0です(待ちません)。 スクリプトは、_MOUSE_WAIT変数に望ましい遅延を設定するなどして、デフォルト値を設定することができます "Var _MOUSE_WAIT=1s" など。

    戻り値
    たとえばI / Oエラーの場合、それが失敗したときに1、成功は0(ゼロ)を返します。

    使用例
    Mouse click count=2

    - 現在のマウスポインタの座標でマウスのダブルクリックを実行します。

    Mouse move to=x:25,y:122

    - マウスポインターを指定された座標に移動する

    Mouse move to=x:{_MOUSE_X}+50

    - マウスポインタを現在の位置から右に50ピクセル移動します。

    Mouse drag from=x:10%,y:450 to=x:22.5%,y:450 wait=2s

    - 指定した開始位置から目的の位置にマウスポインタをドラッグし、2秒間待つ。 x は相対座標形式で与えられます。 ディスプレイの解像度が800x600ピクセルの場合、 ' x:10% 'は ' x:60 'と、 ' x:22.5% 'は ' x:135 'と同様です。

    Mouse swipe from=x:161,y:124 to=x:161,y:226

    - タッチスクリーンを開始位置から目的の位置にスワイプします。

    Compareto "icon.png" method=search onfail="Exit 1"
    Mouse move to=x:{_SEARCH_X}+10,y:{_SEARCH_Y}+10
    Mouse press
    Mouse move to=x:{_SEARCH_X}+110 wait=500
    Mouse release


    - 画像比較によって見つかったオブジェクトに適用された「合成ドラッグ」の例です。 このスクリプトはまず、icon.pngテンプレートで表されるオブジェクトをデスクトップで検索します。 見つかった場合は、マウスポインタが領域(各方向に10ピクセル)に移動し、一連の押し、移動、解放イベントを使用して、オブジェクトを右に100ピクセルドラッグします。

    Mouse pinch

    - 画面をピンチします。 現在の接続がピンチをサポートしている場合、現在のアプリケーションをズームアウトします。

    Mouse zoom center=x:220,y:450 start=125 end=180

    - 画面を拡大します。 現在の接続がピンチをサポートしている場合、現在のアプリケーションを拡大表示します。 このコマンドは、カスタムの中心点と開始距離と終了距離を使用します。

    3.1.5 Paste


    説明
    次へ | 前へ | トップ^
    Paste - システムクリップボードを使用してテキストをペースト(挿入)します。 キーボードの文字を文字で入力するのではなく、コマンドをクリップボードにコピーし、Ctrl + V(Mac OS XではCommand + V)を押してシステムのペーストアクションをトレースできます。 Type/Typeline でテキストを入力するよりもはるかに高速です。

    このコマンドは、 ローカルデスクトップデスクトップ などのクリップボード操作をサポートする接続を対象としてい ます。 他の接続の場合、コマンドは自動的に Type コマンド機能に戻ります。

    形式
    Paste <text> [wait=<time>] [count=<number>]
    *赤色は必須パラメータを示します

    オプション
    text

    - ペーストするテキスト。 テキストにスペースまたは等号「=」が含まれている場合は、二重引用符で囲む必要があります(例:"これは スペース を含む テキストです")。 テキストに二重引用符を含める必要がある場合は、 "This is double quote -\" "のように先頭にバックスラッシュを置きます。二重引用符で囲まれたバックスラッシュを表示する必要がある場合は、 '\\"'と記載します。例えば、 "これはバックスラッシュの後に二重引用符を付けたものです - \\" " と書けばバックスラッシュと二重引用符がテキスト上で利用できます。

    サポートされるテキスト文字は、デスクトップクライアント(プロトコル)によって適用される制限の対象です。 たとえば、RFB(VNC)プロトコルは、Latin-1(ISO 8859-1)文字セット以外の文字を転送することはできません。 逆に、ネイティブのJavaクライアントは、ローカルキーボード上で生成できる文字のみを、それらが属する文字セットに関係なく転送することができます。 詳細については、該当するクライアントドキュメントをお読みください。

    wait=<time>

    - テキストが貼り付けられた後に待つ時間。 次のコマンドが " Wait <time> ' だった場合と同じ効果があります 。 値は、ミリ秒数または有効な 時間値 のいずれかでなければなりません 。

    count=<number>

    - コマンドを何回繰り返すべきか。 デフォルト値は1(1度だけペーストする)です。

    戻り値
    例えばI/Oエラーの場合、成功は0(ゼロ)失敗で1を返します。

    使用例
    Paste "hello world!"

    - 'hello world!'をペーストします。


    3.1.6 Press


    説明
    次へ | 前へ | トップ^
    Press - デスクトップにキーデータを送信します。 これは、キーボードのキーを押すことに似ています。

    書式
    Press [<modifier_1>+...+<modifier_N>+]<key|modifier>[location=<standard|numpad|left|right>] [release=<true|false>] [count=<number>] [wait=<time>]

    *赤色は必須パラメータを示します

    オプション
    key

    - 押すキーボードキーの名前。 ほとんどのキー名はキーボードに書かれているものに対応しています(例えば 'A'、 'Insert'、 'Tab'など)。 キーは大文字と小文字が区別されず、任意の文字の場合に指定できます。

    キー名は 、 java.awt.event.KeyEvent クラス内で 宣言され た キーコード定数 から内部的に導かれます。 ここで、識別子自体は VK_接頭辞の後の文字列 です。 たとえば、 VK_ENTER 定数 があるため、キー名は「ENTER」、「Enter」または「enter」です。 KeyEvent Java Reflection APIを使用して実行時にクラスから名前が実際に抽出されるため 、サポートされるキーの範囲は、HeartCore Robo Desktopを実行するために使用されるJavaのバージョンによって異なる場合があります。 サポートされているキー名の完全なマップは、サポートされている キーウィンドウ から取得できます 。

    キーの前には、Ctrl + Alt + Deleteなどの「+」記号で区切られたShift、Alt、Ctrlの組み合わせを任意に組み合わせて前に付けることができます。 修飾子名では大文字と小文字は区別されません

    名前に関しては、特定の物理的なキーや文字ではなくマッピングされることに注意してください。 たとえば、標準の ' - 'のマイナスキーを押すと、数字キーパッドのキーコードとは異なる内部キーコードが生成されます。 これらは、 "Press - " (標準)と "Press SUBTRACT location = numpad" (数字パッド)の 2つのプレスコマンドでも表現できます 。 ほとんどの場合、ターゲットシステムは同じ方法でそれらを解釈しますが、障害が発生する可能性があります。 たとえば、control plus( "Press Ctrl ++" )が[Ctrlを押し、 '+'を押し、 '+'を離し、Ctrlを押す]のシーケンスとして生成されます。 このようなキーの組み合わせは、Shiftキーを押しながら標準の '+' ASCII文字(0x2b)を取得する必要がある米国のキーボードでは作成できないため、このシーケンスはデスクトップによって正しく解釈される場合と解釈されない場合があります。 キーが認識されない場合は、代わりに数字パッドを使用してみてください( "Ctrl + ADD location = numpad"を押してください )。 特定のキーパッドのキー名を取得するには、 サポートさ れているキーウィンドウを開き、 「キーを押す.​​.」 テキストフィールドに フォーカスがある間にキーを押します パラメータもありますが、それがなくても動作します。

    このコマンドは、キー名のほかに2.0.3以降のASCII文字も受け入れます。 " Press * "や "Press @"の ようなコマンドを使うことができます 。 さらに、 localion = "numpad" パラメータを使用 して、これらの文字を数値キーボードにマッピングすることも できます。 たとえば、 「Press NUMPAD0」 を呼び出すために必要なテンキーパッドの「0」キーを押すと、 より直感的な「Press 0 location = numpad」もサポートされます これは、ADD(プラス、 '+')、SUBTRACT(マイナス、 ' - ')、MULTIPLY(アスタリスク、 '*')、DIVIDE(スラッシュ、 '/')、DECIMAL 、 '。')とセパレータ(カンマ '、')など他の数字キーパッドにも適用されます。

    転送可能なキーとキーの組み合わせは、デスクトップクライアント(プロトコル)によって適用される制限の対象となります。 たとえば、RFB(VNC)プロトコルは、Latin-1(ISO 8859-1)文字セット以外の文字を転送することはできず、WinやContextMenuなどのWindowsネイティブキーのサポートは一部の製品でのみサポートされています。 逆に、ネイティブのJavaクライアントは、ローカルキーボード上で生成できる文字のみを、それらが属する文字セットに関係なく転送することができます。 詳細については、 リリースノート および該当のクライアントドキュメントをお読み ください。

    location=<standard|numpad|left|right>

    - キーの場所。 このオプションは、典型的なキーボードに複数回存在するキーでのみ意味があります。 そのようなキーの例は、数字キー '0'〜 '9'(標準位置と数字パッド)または修飾キー(キーボードの左右のCtrlとAlt)です。 サポートされている位置の値は standard 、(デフォルト) numpadleft および right です。

    このコマンドは、[key、location]の対が意味をなさないかどうかを確認しないことに注意してください。 たとえば、アルファベットの文字はほとんどのキーボードに1個だけ存在し、唯一の論理的に有効な場所は default 標準のものです。 ただし、ほとんどのクライアントはヒントとしてのみ場所を使用し、適用されない場所ではキーで無視します。

    release= <true|false>

    - 2.3.4以降でサポートされています。 このパラメータが指定されている場合、完全なプレスリリースシーケンスではなく、キープレス(release = false)またはキーリリース(release = true)だけが実行されます。 これにより、長いキー押下および/または押されたプレスおよびマウスイベントの自動化が可能になります。 このパラメータを使用してプレスをシミュレートする場合は、キーがもう必要なくなったときにキーを適切に解放するようにしてください。

    count=<number>

    - キーを何回送信するか。 デフォルト値は1です。複数のプレス動作の間の遅延は、 プレスコマンドの ユーザー設定の値によって定義されます。

    wait=<time>

    - イベントが送信された後に待機する時間。 このパラメータは、サーバーが押されたキー/キーに反応するのに時間が必要な場合に便利です。 次のコマンドが " Wait <time> ' だった場合と同じ効果があります 。 値は、ミリ秒数または有効な 時間値 のいずれかでなければなりません 。 デフォルト値は0です(待ちません)。 スクリプトは、たとえば、_PRESS_WAIT変数に希望の遅延時間を設定してデフォルト値を設定することができます "Var _PRESS_WAIT=1s"

    戻り値
    コマンドが成功の場合は0(ゼロ)、失敗したときに1を返します。

    使用例
    Press Ctrl+Alt+Del

    - デスクトップのCtrl + Alt + Delキーを押します。

    Press Tab count=5 wait=2s

    - Tabキーを5回押すことをシミュレートし、2秒待ってから次のコマンドに進みます。

    Press Ctrl location=right

    - 右のCtrlキーを押します。

    Var KEY_TO_PRESS=Alt+F4
    <...>
    Waitfor update area=x:340,y:220,w:240,h:160 extent=80% timeout=10s ontimeout="Var KEY_TO_PRESS=Right"
    Press {KEY_TO_PRESS} wait=2s

    - この例は、不要なポップアップウィンドウを解決する方法を示しています。 指定された座標でウィンドウがポップアップすると、 ' Press {KEY_TO_PRESS} 'コマンドはAlt + F4を使用して閉じられることを保証します。 ウィンドウが表示されない場合は、Altキーが押され、通常はウィンドウに何ら影響を与えません。

    3.1.7 Type/Typeline


    説明
    次へ | 前へ | トップ^
    Type,Typeline - デスクトップにテキストを入力します。 Typelineコマンドは、テキストを入力してEnterを押すまでの便利なコマンドです。 これは ' Type <text> 'と ' Press Enter 'の 組み合わせと同じ効果があります。

    表記
    Type <text> [wait = <time>] [count = <number>]
    typeline <text> [wait = <time>] [count = <number>]
    *赤色は必須パラメータを示します

    オプション
    text

    - 入力するテキスト。 テキストにスペースまたは等号「=」が含まれている場合は、二重引用符で囲む必要があります(例:"これは スペース を含むテキストです")。 テキストに二重引用符を含める必要がある場合は、 "This is double quote - \" "のように先頭にバックスラッシュを置きます。二重引用符で囲まれたバックスラッシュを表示する必要がある場合は、 '\\"'例えば、 "これはバックスラッシュの後に二重引用符を付けたものです - \\" " のように記載します。

    サポートされるテキスト文字は、デスクトップクライアント(プロトコル)によって適用される制限の対象です。 たとえば、RFB(VNC)プロトコルは、Latin-1(ISO 8859-1)文字セット以外の文字を転送することはできません。 逆に、ネイティブのJavaクライアントは、ローカルキーボード上で生成できる文字のみを、それらが属する文字セットに関係なく転送することができます。 詳細については、該当のクライアントドキュメントをお読みください。

    wait=<time>

    - テキストが入力された後に待つ時間。 このパラメータは、サーバーが押されたキー/キーに反応するのに時間が必要な場合に便利です。 次のコマンドが " Wait <time> ' だった場合と同じ効果があります 。 値は、ミリ秒数または有効な 時間値 のいずれかでなければなりません 。 デフォルト値は0です(待ちません)。 スクリプトは、たとえば、_TYPE_WAIT変数または_TYPELINE_WAIT変数に希望の遅延時間を設定して、デフォルト値を設定することができます "Var _TYPE_WAIT=1s"

    location = <standard|numpad|left|right>

    - キーの場所。 このコマンドを指定すると、入力された文字が指定されたキーボード位置にマップされます。 サポートされるのは対象位置の値がある standard (デフォルト)、 numpadleftright です。このオプションは、コマンドによって受け入れられる文字を含むキーボードのみの一部であり、テンキーで意味を持ちます。

    このパラメータのサポートは、モバイルデバイスのテストを容易にすることを目的としています。 モバイルデバイス(特に携帯電話)の数字キーは、多くの場合、数字キーにマッピングされているため、プレスコマンドで各キーを処理するのは不便です。 たとえば、携帯電話に電話番号+0123456789を入力して呼び出すには、単に「 Typeline +0123456789 location = numpad」を使用し ます。

    count=<unmber>

    - コマンドを何回繰り返すか。 デフォルト値は1です(テキストを入力するか、行を1回入力してください)。

    戻り値
    例えばI/Oエラーの場合、成功の場合は0(ゼロ)、失敗は1を返します。

    使用例
    Type hello

    - 'hello'と入力します。

    Typeline "mkdir /tmp/mydir" wait=2s

    - アクティブなLinux / Unix端末ウィンドウでこれを実行すると、 mkdir /tmp/mydir' OSコマンド が呼び出され、 2秒待ってから次のコマンドに進みます。

    Type "100*4" location=numpad

    - 数値キーボードで数式を入力します。

    Typeline "+111222333444" location=numpad

    - 数値キーボードで数式を入力し、Enterキーを押します。 テスト対象のシステムがnumパッドにキーボードがマッピングされたモバイルデバイスの場合、指定された番号に電話がかけられます。


    3.2 管理および実行管理コマンド


    3.2.1 Break


    説明
    次へ | 前へ |次へ トップ^
    Break - for ループの右中かっこを囲んだ後、 すぐに最も内側のループを終了して最初のコマンドに進みます '}' 。 コマンドが for ループ外で使用されている場合は 、構文エラーが報告されます。

    forコマンドを壊さずに現在のループをスキップするには、continueコマンドを使用します。

    書式
    ループの終了

    戻り値
    コマンドは終了コードを変更せず、以前に実行したコマンドによって返された値を残します。

    使用例

    # Infinite loop
    for (;0==0; ) {

        # Wait for at least 20% update of the remote screen.
        # If it doesn't update for 10 seconds, break the loop.
        Waitfor update extent=20% timeout="10s" ontimeout="break"
    }

    - forWaitfor そして break の組み合わせを使用して、リモートデスクトップを更新するまで実行停止を保持します。


    3.2.2 Click


    説明
    次へ | 前へ | トップ^
    Clickは、 Waitfor match Mouse click コマンドの 組み合わせです 。 デスクトップ上で コンポーネントイメージ ソリッドカラー オブジェクト、 または テキスト を検索し、クリックします。 オブジェクトが見つからない場合は、スクリプトを終了します。

    書式

    Click <comparison_method>] [timeout=<time>] [cmparea=<[x:<x>][,y:<y>][,w:<width>][,h:<height>]>] [number= <component_number>] [move=<[x:<x>][,y:<y>]>] [btn=<button>][modifiers=modifier]  [count=<number>] [count=<true|false>] [step=<step_name>] [wait=<time>] [<method specific オプション> ] *赤色は必須パラメータを示します

    comparison_method

    - サポートされるメソッドは次のとおりです。


    一般的なオプション

    timeout=<time>

    - コンポーネントが画面に最大で表示されるまでの待機時間を指定するタイムアウト。 値は、ミリ秒数または有効な 時間値のいずれかでなければなりません 。 デフォルト値は30秒です。

    cmparea=[x:<x>] [,y:<y>] [,w:<width>] [,h:<height>]

    - 比較を制限するデスクトップの長方形の領域。 このパラメータを省略すると、リモートデスクトップ全体が処理されます。 エリア座標は ' x:<x>,y:<y>,w:<width>,h:<height> 'の 書式を持ち 、各座標はピクセル単位(たとえば。 "x:225" )またはパーセント 単位()で指定できます "x:23%" 。 x、y、幅または高さのいずれかが省略された場合、Robotはフルスクリーン値を使用して不足しているパラメータ( x:0, y:0, w:<screen_width>, h:<screen_height> ) を決定します 。

    number=<component_number>

    - クリックを適用するための画面上のコンポーネントの通常の番号。 画面上のコンポーネント(オブジェクト)は、上から下、左から右の順にソートされます。 デフォルト値は1です(最初に配置されたコンポーネントをクリックします)。 画面上に見つかったコンポーネントの数が指定された数よりも少ない場合、コマンドはスクリプトを終了します。


    move=[x:<x>] [,y:<y>]

    - ターゲットオブジェクトの中心からのクリック位置を指定します(4.2以降)。 これにより、オブジェクト自体の代わりに近くの場所をクリックすることができます。 比較メソッドが image パラメータである場合、イメージ クリックポイント がオーバーライドさ れ、イメージセンターが基点として使用されます。 たとえば、"Click image template=button.png move=x:-40" のコマンドは ボタンセンターから左に40ピクセルをクリックします。


    btn=<button>

    - クリックするマウスボタン。 指定できる値は "left""middle" および "right" です。

    modifiers= <modifiers>

    - マウスイベント修飾子(オプション)。 値は、Shift + Alt + Ctrlの組み合わせでプラス記号(+)で区切って指定することもできます(例: "Ctrl + Alt + Shift")。

    count=<number>

    - クリックする回数。 デフォルト値は1です。

    continue= <number>

    - 、オブジェクトが見つからない場合(4.2以降)はtrueの値ではスクリプトを終了しません。 デフォルト値は false (失敗時に終了)です。 リリース4.4.2以降、コマンドは _CLICK_CONNECT 変数の 値も監視 し、デフォルト値として使用します。 たとえば、スクリプト内のすべてのClickコマンドをデフォルトでスクリプトを終了させないようにするには、最初の変数を true"Var _CLICK_CONTINUE=true" )に 設定します 。 

    step=<step_name>

    - Step コマンド との単純な統合 (4.2以降) これを指定すると、指定された名前のテストステップがpass(オブジェクトが見つかり、クリックされた)またはfail(オブジェクトが見つからない)の結果で作成されます。

    wait=<time>

    - クリック後の待ち時間。 次のコマンドが " Wait <time_in_ms> ' だった場合と同じ効果があります 。 値は、ミリ秒数または有効な 時間値のいずれかでなければなりません 。 デフォルト値は0です(待ちません)。 スクリプトは、_CLICK_WAIT変数に望ましい遅延時間を設定するなどして、デフォルト値を設定することができます "Var _CLICK_WAIT=1s"


    Click image template=<image_collection> [passrate=<pass_rate_in_%>] [<search2_specific_params>] [< common オプション>] *赤色は必須パラメータ

    特定のオプション - 画像

    template=<image_collectio>

    - イメージコレクション -セミコロンで区切られた画像を1つまたは複数の画像ファイル名やフォルダ(「;」)リモートデスクトップの画像と比較します。 Linux / Unixでは、リストが誤って解析されるため、ファイル名にセミコロンが含まれていないことを確認してください。 ファイル名は、相対(例えば img.png )か絶対(例えば /root/report/img.png )のどちらかです。 相対パスを使用すると、イメージは _TEMPLATE_DIR変数で 定義されたディレクトリで検索されます。 サポートされているイメージ形式はJavaバージョンの対象です。 Java 1.6以降では、PNG、JPG、GIF、およびBMPをサポートします。

    テンプレートイメージは、指定されたリストの順序でリモートデスクトップイメージと比較されます。 テンプレートの比較で肯定的な結果(指定されたイベントに応じて一致または不一致のいずれか)が発生した場合、条件は満たされたとみなされ、コマンドは終了コード0で終了し、 リスト内の残りのテンプレートはスキップされます。 次に、あらかじめ 定義された変数_COMPARETO_TEMPLATE_INDEXを使用して、一致するテンプレート画像のインデックスを決定することができます。 サポートされている変数の完全なリストについては、 画像比較固有の変数 を 参照ください。

    passrate=<pass_rate_in _%>

    - 画像比較の合格率。 0から100までの数字でなければならず、任意にパーセント記号(たとえば、"passrate=95" または "passrate=95%" )を設定できます。 このパラメータを省略すると、デフォルトのsearch2合格率50%が使用されます。

    search2_specific_params

    - search2 比較メソッドで サポートされているすべてのパラメータ (オプション)。


    Click object [< object_specific_オプション >] [< common オプション >]  。


    特定のオプション - オブジェクト

    object_specific_params

    - オブジェクト 比較メソッドで サポートされているすべてのパラメータ (オプション)。 通常、少なくともオブジェクトの色を指定する必要があります。


    Click ocr [<tocr_specific_オプション>] [<common オプション>]

    特定のオプション - OCR

    tocr_specific_オプション

    - tocr 比較メソッドで サポートされているすべてのパラメータ 。 クリックを テキストまたはパターンオプションの いずれかに適用するにはターゲットテキストを指定する必要があります。

    戻り値
    コマンドが常に成功すると0を返すか、失敗した場合に、指定された比較メソッドからエラーコードを返しスクリプトを終了します。

    使用例

    Click image template="google_button.png" number="2"
    - 画面上のgoogle_button.png画像で 指定された2番目のボタンをクリックし ます。 ボタンが見つからないか、または画面上のボタンの数が2より小さい場合、コマンドはスクリプトに失敗します。 
    Click object tolerance="10" color="255;0;0" max="w:20"
    - 赤色で幅が20ピクセル以下のオブジェクトをクリックします。 toleranceを利用するとより多くの赤色を見つけることができます。
    Click ocr text="Cancel" distance="1"
    - OCRを使用して画面上のテキストを読み取り、「キャンセル」という言葉をクリックします。 このdistanceは、OCRエンジンが「Cancal」などの1文字を認識しない、または認識しなくても、単語が見つかるようにできます。

    3.2.3 Compareto


    説明
    次へ | 前へ | トップ^
    Compareto - Comparetoコマンドは 、指定された画像比較方法を使用して 、現在のリモートデスクトップイメージと単一のイメージまたは イメージコレクションの 比較を実行することを目的としています。 オプションのアクションは、 "onfail"パラメータと "onpass"パラメータのいずれか、またはif / else構造体を使用してコマンド終了コードをテストすることで結果に基づき実行できます。

    HeartCore Robo Desktop 4.4には6つの画像比較方法があり、詳細は 画像比較機能 の章で 詳細を説明しています。
    1. Image Search v2 「search2」 、v3.0以降)は、「検索」メソッドの後継であり、テンプレート画像によって表されるオブジェクトに対するデスクトップ画面のトレランス検索を実行する。
    2. Image Search 「search」 、v2.0以降)は、テンプレート画像によって表されるオブジェクトのデスクトップ画面の許容範囲内の検索を実行します。
    3. Object Search "object" 、v2.2以降)は、単一のRGBカラーまたは類似の色の範囲で画面上のオブジェクトを検索します。
    4. Tesseract-OCR 「tocr」 、2.2以降)は、フリーのオープンソースの Tesseract-OCR Engine を使用して、デスクトップイメージ上で光学式文字認識(OCR)を実行します 。
    5. 画像ベースのテキスト認識 「text」 、3.0以降)は、保存された文字画像の集合を用いてスクリーンからテキストを抽出する。
    6. ヒストグラムベースの比較 (コード "default" 、v2.0以降)は、デスクトップイメージと指定されたテンプレートイメージのヒストグラムを比較するレガシーアルゴリズムです。
    メソッド固有の変数に加えて、コマンド _COMPARETO_ は次のよう に 接頭辞付き変数のセットを入力します。

    変数名 説明
    _COMPARETO_TEMPLATE = <file>
    最後の画像比較に使用される画像ファイル(絶対パス)。
    _COMPARETO_RESULT = <number>
    比較結果のパーセンテージ。 これは常に0〜100の数値
    です。比較に使用されるメソッドが出力
    結果を サポートしている場合 、イメージがどのくらい一致したかが示されます。
    _COMPARETO_PASS_RATE = <number>
    最後の画像コンパイルに使用された合格率パーセンテージ。 それは
    、常に0〜100の数値です。
    _COMPARETO_TIME_IN_MS = <ミリ秒>
    イメージ比較で費やされた時間(ミリ秒)。
    テンプレートのリストがある場合 、その値は実行されたすべての
    比較時間を表します。
    _COMPARETO_TEMPLATE_INDEX = <number>
    パス結果 を生成したテンプレートリスト内のテンプレートのインデックス 。 インデックスはゼロから始まります。
    _COMPARETO_TEMPLATE_WIDTH = <number>
    _COMPARETO_TEMPLATE_HEIGHT = <number>
    比較に成功すると、変数には一致する
    テンプレート画像のディメンジョンが含まれます。2.0.2以降でサポートされています。
    _COMPARETO_SOURCE_X = <number>
    _COMPARETO_SOURCE_Y = <number>
    最後に比較されたテンプレートのソース座標。 これらの変数
    は、バージョン2.2以降で作成されたテンプレートに対してのみ設定されます。
    詳細については、 画像メタデータの章を参照してください。
    _COMPARETO_CLICK_X = <number>
    _COMPARETO_CLICK_Y = <number>
    最後に比較されたテンプレート画像のクリック点。 座標は、デフォルト
    では、「search」画像
    比較アルゴリズムまたはカスタム相対 位置を介して配置されたコンポーネントの中心を指します 。
    詳細については、 画像メタデータ の章を参照してください。

    コマンドはさらに、画像コレクションからロードされた画像の処理の順序を制御する1つの入力変数をサポートします。

    変数名 説明
    _COMPARETO_SORT_MODE = <number>

    ディレクトリから読み込まれたテンプレートイメージに適用されるソートモード。
    詳細については、 イメージコレクションの 章を参照してください。

    画像比較の信頼性を高めるには、「 画像比較の推奨事項 の章に 記載されている要素を考慮してください。 画像比較で失敗したときの中心点を設定する方法については、 ComparisonFailure Fallback フォールバックプロシージャ を参照してください 。レポートコマンドで

    生成されたHTMLレポートに比較結果を表示するには、Screenshotを使用します 。 画面がテンプレート画像と一致するまで待つ場合は、「Waitfor match」を 使用します 。 'Screenshot'と 'Waitfor match'コマンドは、内部的にComparetoコマンドのメソッドを使用し、同じ変数をサポートします。

    書式

    compareto <image_collection> [passrate=<pass_rate_in_%>] [onpass=<command>] [onfail=<command>]
    [method=<comparison_method>]
    [methodparams=<custom_params>] [cmparea=[X:<X>][,Y :<y>][,w:<width>][,h:<height>]] [<method_specific_params>]
    *赤色は必須パラメータを示します

    オプション
    image_collection

    - image_collection -セミコロンで区切られた画像を1つまたは複数の画像ファイル名やフォルダ(「;」)リモートデスクトップの画像と比較します。 Linux / Unixでは、リストが誤って解析されるため、ファイル名にセミコロンが含まれていないことを確認してください。 ファイル名は、相対(例えば img.png )か絶対(例えば /root/report/img.png )の どちらか です。 相対パスを使用すると、イメージは _TEMPLATE_DIR変数で 定義されたディレクトリで検索されます。 サポートされているイメージ形式はJavaバージョンの対象です。 Java 1.6以上でPNG、JPG、GIF、およびBMPをサポートします。

    テンプレートイメージは、指定されたリストの順序でリモートデスクトップイメージと比較されます。 テンプレートの比較で肯定的な結果(指定されたイベントに応じて一致または不一致のいずれか)が発生した場合、条件は満たされたとみなされ、コマンドは終了コード0で終了し、リスト内の残りのテンプレートはスキップされます。 _COMPARETO_TEMPLATE_INDEX 次に、あらかじめ 定義された変数 を使用して、一致するテンプレート画像のインデックスを決定することができる。 サポートされている変数の完全なリストについては、 画像比較固有の変数 を 参照してください 。

    passrate = <pass_rate_in _%>

    - 画像比較の合格率。 0から100までの数字でなければならず、任意にパーセント記号(たとえば、 "passrate=95" または "passrate=95%" )を 続けてもかまいません 。 このパラメータを省略すると、メソッドまたはHeartCore Robo環境設定で定義されたデフォルトの合格率が使用されます(デフォルト値は 「デフォルト」では 95% 、 「検索」 および 検索2」の方法 では100%です )。

    onpass = <command>

    - 比較が成功したときに実行されるコマンドです(選択されたメソッドは成功を報告します)。 それは単一のコマンドでなければなりません。 一連のコマンドを呼び出すには、プロシージャーまたは後続の if / else構造を 使用して、コマンドの終了コードをテストします。

    onfail = <command>

    - 比較が失敗したときに実行されるコマンド(選択されたメソッドは失敗を報告します)。 1つのコマンドでなければなりません。 実行するコマンドのシーケンスを定義する必要がある場合は、プロシージャを使用します。

    method = <comparison_method>

    - 画像比較に使用する方法(アルゴリズム)。 これは、「 画像比較機能」 の章で 説明されているサポートされているメソッド名(コード) またはプラグインインタフェースで有効になっているサードパーティメソッドの名前で なければなりません 。 省略された場合は、デフォルトのコマンドが使用されます。

    methodparams=<custom_params>

    - 画像比較アルゴリズムに渡すカスタムパラメータ。 Robot2.0のデフォルト画像コンパイルアルゴリズムはカスタムパラメータをサポートしていないので、独自のアルゴリズムを記述しない限り、このパラメータを指定する必要はありません。

    cmparea=[x:<x>][,y:<y>][,w:<width>][,h:<height>]

    - 比較を制限するデスクトップの長方形の領域。 このパラメータを省略すると、リモートデスクトップ全体が処理されます。 エリア座標は ' x:<x>,y:<y>,w:<width>,h:<height> 'の 書式を持ち 、各座標はピクセル単位(たとえば。 "x:225" )またはパーセント 単位("x:23%")で指定できます。 x、y、幅または高さのいずれかが省略された場合、HeartCore Robo4.4はフルスクリーン値を使用して不足しているパラメータ( x:0, y:0, w:<screen_width>, h:<screen_height> ) を決定します 。

    method_specific_params

    - サポートされているメソッド固有パラメータのリストについては、 それぞれの 比較方法 ドキュメントを参照してください 。

    戻り値
    コマンドは、比較が成功すると 0(ゼロ)を返し、失敗した場合は1を返し、テンプレートイメージが見つからないか読み取れない場合は2を返します。

    使用例
    Compareto netscape.png passrate=95% onfail="exit 1"

    - netscape.png "デフォルトの"イメージ比較方法を使用して 、現在のリモートデスクトップのイメージ をイメージと比較します。 95%以上一致しない場合は、 Exit コマンドを 使用してスクリプトの実行を終了し、終了 コード1を返します。


    Compareto
    button1.png;button2.png method=search
    if ({_EXIT_CODE} == 0) {
      Mouse click to="x:{_SEARCH_X}+5,y:{_SEARCH_Y}+5"
    }

    - リモートデスクトップイメージで、 button1.png またはbutton2.pngに 一致するボタンを検索します 。 見つかった場合は、それをクリックします。 コマンドはxとyの座標に5ピクセルを追加して、ボタンの中央をクリックします。

    Compareto "search.png" method="search"
    for (i=1; {i}<{_SEARCH_MATCH_COUNT}+1; i={i}+1) {
      # Nested variables compose the variable names of a suffix and an index
      Mouse click to=x:{_SEARCH_X_{i}},y:{_SEARCH_Y_{i}}
    }


    - テンプレート画像search.pngで表されるアイコンがリモートデスクトップイメージから検索され、それぞれの画像(アイコン)がクリックされます。

    Var _TOCR_LINE_COUNT=0
    Compareto
    method="tocr" cmparea="x:33,y:2,w:200,h:22"
    for (i=1; {i}<{_TOCR_LINE_COUNT}+1; i={i}+1) {
       Typeline "{_TOCR_LINE{i}}"
    }

    - Tesseract-OCRを使用して指定されたデスクトップ領域からテキストを抽出し、デスクトップに入力します。

    Compareto method="tocr" cmparea="x:33,y:2,w:200,h:22" pattern="[aA]pplication.*"
    if ({_EXIT_CODE} > 0) {
      Exit 1
    }

    - Teseract OCRで認識されたテキストが「アプリケーション」または「アプリケーション」のいずれかの単語で開始しない場合は、正規表現を使用してスクリプトを終了します。

    Compareto method="object" color="FF0000" draw="true"

    - すべての単色の赤いオブジェクト(RGB =(256,0,0))を画面上で探し、GUIで強調表示します。

    Compareto
    circle.png method="object" color="00FF00"
    tolerance="100" passrate="80%" draw="true" rotations="30"

    - circle.png イメージのものと 80%以上類似している緑色のオブジェクトをすべて見つけ 、GUIで強調表示します。 許容 パラメータは、許容可能なグリーン色のパレットのサイズを定義します。 回転の パラメータが30に設定され、アルゴリズムは12度刻みで回転オブジェクトのスクリーン(360度/ 30)を検索します。


    3.2.4 Continue


    説明
    次へ | 前へ | トップ^
    Continue - 現在の最も内側の forループ1回分をスキップし ます。 コマンドが for ループ外で使用されている場合は 、構文エラーが報告されます。 4.1.3以降でサポートされています。 forループ全体を中断(終了)するには、 break コマンドを 使用します。

    書式
    Continue

    戻り値
    コマンドは終了コードを変更せず、以前に実行したコマンドによって返された値を残します。

    使用例

    # Increment X for each even loop (the resulting SUM will be 5)
    Var SUM=0
    for
    (i=0; i<10; i={i}+1) {

       if ({i} % 2 == 1) {
          continue
       }

       Eval SUM={SUM}+1

    }


    3.2.5 Drag

    説明
    次へ | 前へ | トップ^
    Dragは、 Waitfor match Mouse drag コマンドの 組み合わせです 。 デスクトップ上で 、イメージソリッドカラーまたはテキスト ソースコンポーネント を検索し、 相対座標で指定された場所または別のイメージ検索によって配置されたターゲットコンポーネントに ドラッグします。 オブジェクトが見つからない場合は、スクリプトを終了します。 コマンドは、Clickコマンドとかなり似ています。

    書式

    Drag <comparison_method> [shift=x:<relativeX>,y:<relativeY>] [template2=<target_component_template>] [number2=<target_component_number>] [timeout=<time>] [cmparea=<[x:<x>][,y:<y>][,w:<width>] [,h:<height>]>] [number=<component_number>] [btn=<button>][modifiers=<modifiers>] [count=<number>] [continue=<true|false>] [step=<step_name>] [wait=<time>] [<method specific オプション>] *赤色は必須パラメータを示します

    comparison_method

    - サポートされるメソッドは次のとおりです。

    一般的なオプション

    timeout=<time>

    - コンポーネントが画面に最大で表示されるまでの待機時間を指定するタイムアウト。 値は、ミリ秒数または有効な 時間値 のいずれかでなければなりません 。 デフォルト値は30秒です。

    cmparea=[x:<x>][,y:<y>][,w:<width>][,h:<height>]

    - 比較を制限するデスクトップの長方形の領域。 このパラメータを省略すると、リモートデスクトップ全体が処理されます。 エリア座標は ' x:<x>,y:<y>,w:<width>,h:<height> 'の 書式を持ち 、各座標はピクセル単位(たとえば。 "x:225" )またはパーセント 単位( "x:23%" )で指定できます。 x、y、幅または高さのいずれかが省略された場合、HeartCore Roboはフルスクリーン値を使用して不足しているパラメータ( x:0, y:0, w:<screen_width>, h:<screen_height> ) を決定します 。

    number=<component_number>

    - ドラッグを適用する画面上のソースコンポーネントの通常の番号。 画面上のコンポーネント(オブジェクト)は、上から下、左から右の順にソートされます。 デフォルト値は1です(最初に配置されたコンポーネントをドラッグします)。 画面上に見つかったコンポーネントの数が指定された数よりも少ない場合、コマンドはスクリプトを終了します。


    btn=<button>

    - クリックするマウスボタン。 指定できる値は "left""middle" および "right" です。

    modifiers= <modifiers>

    - マウスイベント修飾子(オプション)。 値は、Shift + Alt + Ctrlの組み合わせでプラス記号(+)で区切って指定することもできます(例: "Ctrl + Alt + Shift")。

    shift=x:<relativeX>,y:<relativeY>

    - 現在の場所からコンポーネントをドラッグする場所を指定する相対座標。 ターゲット(ドロップ)の位置は、 template2を使用して代替指定することができます 。 

    template2=<target_component_template>

    - ドロップコンポーネント。 このコマンドを 指定すると、指定されたコンポーネントの search2 を 使用してイメージ検索が実行され、オブジェクトがその場所にドラッグされます。 数値2のパラメータは、画面上の2つ以上が存在する場合、ドロップ対象の数を指定するために使用されます。template2が 指定された場合はシフトパラメータが存在してはいけません。

    number2=<target_component_number>

    - ターゲットコンポーネントの通常番号。 画面上のコンポーネント(オブジェクト)は、上から下、左から右の順にソートされます。 デフォルト値は1です(最初に配置されたコンポーネントのドロップ)。 画面上に見つかったコンポーネントの数が指定された数よりも少ない場合、コマンドはスクリプトを終了します。template2パラメーターと対で使用します。

    continue=<number>

    - 値がtrueで 、オブジェクトが見つからない場合(4.2以降)はスクリプトを終了しません。 デフォルト値は false (失敗時に終了)です。 リリース4.4.2以降、コマンドは _DRAG_CONNECT変数の値も監視 し、デフォルト値として使用します。 たとえば、スクリプト内のすべてのDragコマンドをデフォルトでスクリプトを終了させないようにするには、最初の変数を true"Var_DRAG_CONTINUE=true" )に 設定します 。

    step=<step_name>

    - Step コマンドとの単純な統合 (4.2以降) これを指定すると、pass(オブジェクトが見つかり、ドラッグされた)またはfail(オブジェクトが見つからない)の結果を持つ、指定された名前のテストステップが作成されます。

    Wait=<time>

    - クリック後の待ち時間。 次のコマンドが " Wait=<time_in_ms> ' だった場合と同じ効果があります。値は、ミリ秒数または有効な 時間値 のいずれかでなければなりません 。 デフォルト値は0です(待ちません)。 スクリプトは_DRAG_WAIT変数に所望の遅延時間を設定するなどして、デフォルト値を設定することができます "Var _DRAG_WAIT=1s"


    Drag image template=<image_collection> [passrate=<pass_rte_in%>] [<search2_specific_params>] [<common オプション>] *赤色は必須パラメータを示します

    特定のオプション - イメージ

    template=<image_collection>

    - イメージコレクション -セミコロンで区切られた画像を1つまたは複数の画像ファイル名やフォルダ(「;」)リモートデスクトップの画像と比較します。 Linux / Unixでは、リストが誤って解析されるため、ファイル名にセミコロンが含まれていないことを確認してください。 ファイル名は、相対(例えば img.png )か絶対(例えば /root/report/img.png )の どちらか です。 相対パスを使用すると、イメージは _TEMPLATE_DIR変数で 定義されたディレクトリで検索されます。 サポートされているイメージ形式はJavaバージョンの対象です。 Java 1.6以降では、PNG、JPG、GIF、およびBMPをサポートします。

    テンプレートイメージは、指定されたリストの順序でリモートデスクトップイメージと比較されます。 テンプレートの比較で肯定的な結果(指定されたイベントに応じて一致または不一致のいずれか)が発生した場合、条件は満たされたとみなされ、コマンドは終了コード0で終了し、リスト内の残りのテンプレートはスキップされます。 次に、あらかじめ 定義された変数_COMPARETO_TEMPLATE_INDEX を使用して、一致するテンプレート画像のインデックスを決定することができます。 サポートされている変数の完全なリストについては、 画像比較固有の変数 を 参照してください 。

    passrate=<pass_rate_in _%>

    - 画像比較の合格率。 0から100までの数字でなければならず、任意にパーセント記号(たとえば、 "passrate=95" または "passrate=95%" )を 続けてもかまいません 。 このパラメータを省略すると、デフォルトのsearch2合格率50%が使用されます。

    search2_specific_params

    - search2 比較メソッドで サポートされているすべてのパラメータ (オプション)。


    Drag object [<object_specific_オプション>] [<common オプション>]

    特定のオプション - オブジェクト

    object_specific_params

    - オブジェクト 比較メソッドで サポートされているすべてのパラメータ (オプション)。 通常、少なくともオブジェクトの色を指定する必要があります。


    Drag ocr[< tocr_specific_オプション >] [< common オプション >] 

    特定のオプション - OCR

    tocr_specific_オプション

    - tocr 比較メソッドで サポートされているすべてのパラメータ 。 クリックをテキストまたはパターンオプションのいずれかに適用するには、ターゲットテキストを指定する必要があります。

    戻り値
    コマンドが常に成功すると0を返すか、失敗した場合に、指定された比較メソッドからエラーコードを返してスクリプトを終了します。

    使用例

    Drag image template="lever.png" shift="x:100"
    - 最初のレバーコンポーネントを画面上で見つけ、100ピクセル右にドラッグします。
    Drag image template="column.png" number="2" template2="column.png" number2="3"
    - 2つのテーブル列のスワップの例。 このコマンドは、テーブル内の2番目の列ヘッダーを探し、3番目の列ヘッダーにドラッグします。 列が見つからないか、または画面上の列の数が3より小さい場合、コマンドはスクリプトの失敗となり、一定時間後に終了します。 
    Drag object tolerance="10" color="0;255;0" max="w:20,h:20" shift="x:50,y:-100"
    - 20x20ピクセル以下の緑色のオブジェクトを見つけ、それを右に50ピクセル、上に100ピクセルドラッグします。 公差は、メソッドがより多くの緑色を見つけることを保証する。
    Drag ocr text="Flower" shift="y:220"
    - OCRを使用して画面上のテキストを読み取り、「Flower」の単語を220ピクセル下にドラッグします。

    3.2.6 Eval


    説明
    次へ | 前へ | トップ^
    Eval - 値が数値式として評価されるスクリプト変数を定義します。 詳細については 、このマニュアルの 「 数値式 」の章を参照ください。 それ以外の場合は、 Var コマンド とまったく同じ です。

    形式
    Eval <var_name_1> = <numeric_expression_1>[<var_name_2>=<numeric_expression_2> ... <var_name_N>=<numeric_expression_N>]
    *赤色は必須パラメータを示します

    オプション
    var_name

    - 変数の名前。 名前は大文字と小文字が区別されます。スペースは使用しないでください。

    numeric_expression

    - 引数にあるすべての変数呼び出しが解決された後に数値式または文字列に変換されます。 スペースが含まれている場合は、二重引用符で囲む必要があります(例: "1 + 1")。 式構文とサポートされている数値演算子の詳細については、このマニュアルの 「 数値式 」の章を参照してください 。

    戻り値
    バージョン2.3.2までの評価コマンドは常に0(ゼロ)を返します。 バージョン2.3.3以降では、数値式が正しく評価された場合は0が返されます。 存在しない変数の呼び出しが含まれる場合など、式が評価できない場合は0以外の値が返されます。 このメカニズムにより、値が正しく入力されたかどうかをテストし 、_EXIT_CODE変数値をチェックする if/elseステートメントで コードを分岐させることができます。

    使用例
    Eval POSITION=2*(10+1)

    - 値22の可変POSITIONを作成します。


    Eval SUM={SUM}+10
    if ({_EXIT_CODE} != 0) {
       Exit 1
    }

    - 既存のSUM変数を10増加します。変数が存在しない場合、スクリプトは終了コード1で終了します。


    Var A=1 B=2 C=3

    // As Var resolves the variable calls and concatenates
    // the strings the ABC1 value will be a string of "123+1".
    Var ABC1="{A}{B}{C}+1"

    // As Eval resolves the variable calls and evaluates the result
    // as a numeric expression the ABC2 value will be "124".
    Eval ABC2="{A}{B}{C}+1"


    - この例は、VarコマンドとEvalコマンドが変数値を構成する方法の違いを示しています。


    3.2.7 Exec


    説明
    次へ | 前へ | トップ^
    Exec - ローカルシステム上(HeartCore Roboを実行するマシン上)でOSコマンドを実行します。 引数は 'ls -l' (Unix/Linuxの場合)などの単一のコマンドでなければなりません 。 Javaと基礎となるOSパイプとの間のインタフェースの制限と、出力のリダイレクトがコマンドで許可されていないため。 出力をファイルに保存する必要がある場合は、outfile パラメータを使用します。パイプやリダイレクトを使用する必要がある場合は、コマンドをシェルスクリプトまたはバッチファイルに入れ、代わりにExecコマンドを呼び出すようにします。

    コマンドラインインタプリタによって提供されるWindowsコマンドを実行する必要がある場合は、Execコマンドにインタプリタを指定する必要があります。 これは、同様のコマンドに適用され dircdcopymd mkdirrd rmdir del erase などのコマンドの完全なリストは、Windowsシステムに依存しており、Microsoftのサイトから入手できます。 もう一つの良い情報源は、 wikipedia の COMMAND.COMページ です。 シェル上の'dir' コマンドをWindows上 で実行する例は 次のようになります:

    Windows 95、98、Millenium:

    Exec "command.com /C dir"

    Windows XP以降:

    Exec "cmd.exe /C dir"

    基本となるオペレーティングシステムを呼び出すたびにオーバーヘッド が必要になるため、一連のOSコマンドを一度に実行する必要が ある シェルスクリプト (Linux / Unix)または バッチファイル (MS Windowsの.bat ) を作成する方が効率的です。 次の例は、Windowsのスクリプトディレクトリにある バッチファイル'list.bat'の呼び出しを示しています。 バッチファイルは、ディレクトリをパラメータとして受け取り、その内容を呼び出されたファイルにリストします dir.txt 。 スクリプトパスにはスペースが含まれている可能性があるので、バッチファイルとパラメータの両方を二重引用符で囲む必要があります。これらはスクリプトコマンドの引数の中にあるためエスケープする必要があります。

    The list.bat file:

    @echo off
    dir %1 > %1\dir.txt

    The Exec call:

    Exec "\"{_SCRIPT_DIR}\list.bat\" \"C:\Program Files\" "

    Execコマンドは _EXEC_接頭詞につながる 、次のような4つのプレフィックス変数を設定します。

    変数名 説明
    _EXEC_OUTPUT = <テキスト>
    実行されたコマンドの標準出力(コンソールに 出力されるテキスト )。
    コマンドがプロセスを終了するまで待たないように設定されている場合(nowait=true)、変数は作成されません。
    _EXEC_ERROR = <text> 実行されたコマンドのエラー出力(コンソールに 表示 される エラーメッセージ )。
    コマンドがプロセスを終了するまで待たないように設定されている場合(nowait = true)、変数は作成されません。
    _EXEC_COMMAND = <command> 最後に実行されたOSコマンド(Execコマンド引数)。
    _EXEC_VALUE = <number>
    実行されたOSコマンドの整数終了コード。
    _EXEC_PROCESS_ID=<number(s)>
    "Exec nowait=true"で始まるプロセスに割り当てられた番号。
    後で "Exec kill={_ EXEC_PROCESS_ID}"で利用するために使用することができます。
    v3.5.2以降でサポートされています。


    ファイル名を指定すると、ファイル名を指定することができます。

    構文

    Exec [command] [count=<number>] [nowait=<false|true>] [onpass=<command>]  [onfail=<command>] [outfile=<file_name>] [wait=<time>] [kill=<process(es)>] [autokill=<true|false>] 
    Exec kill=<process(es)> [wait=<time>]  *赤い色が必須のパラメータを示します。

    オプション

    command

    - ローカルシステム上で実行されるOSコマンド。 OS固有の詳細 については、 コマンドの説明 を 参照して ください。

    count=<number>

    - コマンドを実行する回数。 デフォルト値は1(1回実行)です。

    nowait=<false|true>

    - Execコマンドが終了するまでテストスクリプトを待機させる必要があるかどうかを指定するフラグ(v3.4以降でサポート)。 デフォルト値は false です。

    trueの値がExecコマンドに設定されている場合、結果を待つことはなく、テストスクリプトはプロセスの開始直後に続行されます。 _EXEC_OUTPUTおよび_EXEC_ERROR変数は、Execコマンドが呼び出し元のスクリプトに制御を戻すときに出力が不明であるため、入力されません。 基礎となるOSが指定されたコマンドを開始できず、すぐにHeartCore Roboに報告する場合、_EXEC_ERROR変数が作成されることがあります。

    onpass=<command>

    - 実行が成功した場合(終了コード0が返された場合)に実行されるHeartCore Roboコマンド。 1つのコマンドでなければなりません。 実行するコマンドのシーケンスを定義する必要がある場合 if/else は、 Exec コマンドの戻り値に 基づいて プロシージャまたは 構成を 使用します 。

    onfail=<command>

    - 実行が失敗した場合(つまり、ゼロ以外の終了コードが返された場合)に実行されるRobotコマンド。 1つのコマンドでなければなりません。 実行するコマンドのシーケンスを定義する必要がある場合 if/else は、 Exec コマンドの戻り値に 基づいて プロシージャまたは 構成を 使用します 。

    outfile = <file name>

    - コマンド出力を保存するオプションのファイル名。 ファイル名だけを指定すると、現在の作業ディレクトリ(Robotが起動したディレクトリ)に作成されます。 スクリプトの場所またはHeartCore Robo Desktopのインストールディレクトリの相対パスを設定するには、_SCRIPT_DIRまたは_INSTALL_DIR変数を使用します。 たとえば、出力ファイルをスクリプトフォルダに保存するには、次のように入力します outfile="{_SCRIPT_DIR}\out.txt"

    wait=<time>

    - コマンド実行後に待機する時間(オプション)。 デフォルト値は0です(待ちません)。 スクリプトは、_EXEC_WAIT変数に望ましい遅延時間を設定して、デフォルト値を設定することができます。
    例:"Var _EXEC_WAIT=1s"

    kill=<processes>

    - 指定された通常の番号またはセミコロンで区切られた番号のリストで識別されるプロセスを終了します。 v3.5.2以降でサポートされています。 実行コマンドがnowait=trueで実行されるたびに、開始されたプロセスには通常の番号が与えられます。 番号を使用してプロセスを終了することができます。 nowaitパラメータなしで、またはnowait = falseで開始されたプロセスには、強制終了は適用できません。 このようなプロセスに番号は付けられていません。

    番号は1から始まります。 "Exec nowait=true"の複数の呼び出しを実行する複雑なスクリプトは、 _EXEC_PROCESS_ID 変数 からプロセス番号を知ることができ ます。
    例:
    // Start myapp.exe and save its ID
    Exec
    "myapp.exe"
    nowait="true"
    Var MYAPP_ID="{_EXEC_PROCESS_ID}"

    ...
    Exec kill="{MYAPP_ID}" 

    autokill=<false|true>

    - スクリプトの終了後にプロセスを終了するかどうかを指定するフラグ(v3.5.2以降でサポート)。 nowait=trueで開始されたプロセスにのみ適用されます。 デフォルト値は false (プロセス終了しない)です。

    戻り値
    コマンドは失敗せずに実行完了の場合0(ゼロ)、そうでなければOSのコマンドの終了コードを出力します。

    使用例
    Exec "ls -l"

    - 現在のディレクトリの内容を一覧表示します(Unix / Linux)。 このリストは、_EXEC_OUTPUT変数の下で使用できます。

    Exec "date"
    Screenshot image.png desc="This screenshot was taken on {_EXEC_OUTPUT}."

    - date date OSコマンドを 使用して 、タイムスタンプをスクリーンショットの説明(Unix / Linux)に挿入します。

    Exec "C:\Program Files\Internet Explorer\iexplore.exe http://www.google.com"
    Exec "rundll32 url.dll,FileProtocolHandler http://www.google.com"

    - どちらのコマンドもWindows上でInternet Explorerを起動し、Googleサイトを開きます。

    Report index.html
    Exec "mozilla file://{_REPORT_FILE}"

    - HTMLレポートを作成し、ローカルマシン上のMozillaブラウザで開きます。 _REPORT_FILE変数には、 レポート コマンド が入力され、 完全なレポートファイルパスが含まれます。

    // Directory to work with.
    Var DIR=/tmp

    // List the directory contents (Linux/Unix).
    // For Windows replace the "ls" command with "cmd.exe /C dir /B"
    Exec "ls {DIR}"

    // Split the directory listing by lines
    String split "{_EXEC_OUTPUT}" pattern="\r?\n"

    for (i=1; {i}<{_STRING_COUNT}+1; i={i}+1) {

      // Replace floating point from index (not needed on 2.3.3+)
      String replace "{i}" pattern="[.].*" replacement=""

      Var f="{_STRING{i}}"

      // If the file is a .png or a .jpg image display it for 3 seconds
      if ("{f}" endswith ".png" || "{f}" endswith ".jpg") {
        Connect "file://{DIR}/{f}"
        Wait 3s
      }
    }

    - ディレクトリに画像スライドショーを実行する。 ここでExecコマンドが呼び出され、ディレクトリの内容がリストされ、個々のファイルに "文字列分割"を使用して解析されます(1行に1ファイルが必要です)。 解析された文字列(ファイル名)は既知の画像拡張子があるかどうかがチェックされ、Robotのデスクトップビューに3秒間表示されます。


    3.2.8 Exit


    説明
    次へ | 前へ | トップ^
    Exit - スクリプト、プロシージャ、または構造化されたコードブロックを終了し、終了コードを返します。 スクリプトの実行中に 'process'スコープのexitコマンドが呼び出されると、HeartCore Roboを終了し、指定された終了コードを基になるオペレーティングシステムに返します。 詳細については、「HeartCore Robo CLIオプション」 とその 自動スクリプト実行の例に関するドキュメントを参照 してください。

    構文
    exit  <exit_code_number>  [scope = <process|file|procedure|block>] [desc=<description>]

    オプション
    exit_code_number

    - 強制終了コード。 整数でなければなりません。 0の値は通常、成功を示すために使用され、ゼロ以外の値はエラーまたは予期しない結果または動作を示します。 コマンドが呼び出されてスクリプト全体が終了し、 レポート コマンドで 作成されたレポートファイル がある場合、0の終了コードが "passed / successful"と表示され、その他のコードはすべて失敗として表示されます。 終了コードは、基盤となるオペレーティングシステムにも渡され、サードパーティのフレームワークによるスクリプト終了の理由の特定に使用できます。

    scope=<process|file|procedure|block>

    - exitコマンドの有効範囲を制御します。 デフォルト値は process 、スクリプトの実行を終了させる 値です 。 実行が自動化されたもので、実行中の自動プロセスがなくなった場合、JVM(Java Virtual Machine)も終了し、指定された終了コードを基になるオペレーティングシステムに返します。

    file は、現在実行されているファイルを終了します。 「 Run 」コマンドを使用して別のスクリプトからスクリプトを 実行すると、呼び出されたスクリプトのみが終了し、制御がマスタースクリプトに戻されます。

    procedureは最も内側のプロシージャを終了させます。 どのプロシージャも実行されていない場合、終了コマンドは無視されます。 コードの最も内側の構造化ブロックからコマンドが呼び出されると、 そのステートメントは無視されます。
    block値はコードの最も内側の構造化ブロック(例えばif/elseやfor文のうち1つ)から出ます。 そのようなステートメントからコマンドが呼び出されると、そのステートメントは無視されます。

    block if/else for

    desc = <description>

    - オプションの説明は、v2.3以降でサポートされています。 出口スコープが指定されていないか、または等しい場合にのみ使用され process ます。 このコマンドは、レポートフレームワーク( エンタープライズレポートプロバイダなど ) が選択して表示する_EXIT_DESC変数の下に説明を保存します。


    戻り値
    このコマンドは、引数として指定された終了コードを返します。

    使用例
    Exit 10

    - 実行されたスクリプトを終了し、終了コードとして10を返します。

    Typeline myapplication
    Waitfor update extent=40% timeout=20s ontimeout="Exit 2"
    cumulative=true

    - これは Exit コマンドの 一般的な使用方法です 。 これは、 myapplication 端末ウィンドウから 呼び出さ れた GUIアプリケーションを起動したときの状況を示してい ます。 さんがいるとしましょう myapplication ウィンドウが画面サイズの少なくとも40%に相当する固定サイズを持っています。 GUIが正常に起動すると、スクリプトは続行されます。 Waitfor コマンドは、そうでなければ20秒待ってから2の終了コードでテストスクリプトを終了します。


    3.2.9 Imagedoctor(イメージドクター)


    説明
    次へ | 前へ | トップ^
    Imagedoctor - Image Doctor ウィザードの 動作を制御します 。 v3.5以降でサポートされています。

    構文
    include <action>
    *赤色は必須パラメーターを示します

    オプション
    アクション

    - アクションは次のいずれかである必要があります

    戻り値
    コマンドは常に0(ゼロ)を返します。

    使用例
    Imagedoctor off

    - Image Doctorをオフにします。 イメージ比較の失敗は、再びオンになるまで処理されません。


    Imagedoctor skip
    Compareto method="tocr" cmparea="x:33,y:2,w:200,h:22"
    Compareto "search.png" method="search2"

    - イメージ・ドクター・ウィザードがOCRの最終的な障害を無視するようにします。 2番目の「search2」の比較は「スキップ」アクションの範囲外であり、イメージドクターがオンであれば障害発生時に処理されます。 



    3.2.10 Include


    説明
    次へ | 前へ | トップ^
    Incrude - 別のスクリプトまたはコンパイル済みのJavaコードを実行中のスクリプトに追加します。

    引数が このドキュメントで説明されている言語の TPRテストスクリプト である場合、コマンドはスクリプトからプロシージャと変数のみを実行コンテキストにロードし、呼び出し元のスクリプトで使用できるようにします。 この原則により、グローバルに使用される変数とプロシージャを持つライブラリを構築し、スクリプトにリンクすることができます。

    引数がJARまたはZIPファイルまたはクラスパス (.classファイルを含むディレクトリ構造を意味する)を利用した Javaリソースの 場合、 このコマンドは、Javaクラスパスにそれを追加し、コンパイルされたJavaコードをインスタンス化に使用できるようにします。 このメカニズムはv2.2で導入されました。コンパイルされたJavaテストスクリプトの動的ロードをサポートすることを目的としています 。

    クラスパスの動的更新は、Java仮想マシン(JVM)インスタンス全体に影響することに注意してください。 複数の自動化されたテストプロセスが存在する場合、そのようなリソースをロードすることで、そのクラスをすぐに利用できるようになります。 ファイルまたはパスが既にクラスパス上に存在する場合、コマンドは何も実行せず、同じインクルードコマンドを繰り返し呼び出しても問題は発生しません。 リソースがロードされると、ファイルシステムの最終的な変更はJVMと同期されません。 つまり、Robotの実行中にリソースコードに変更を適用して再コンパイルすることはできず、含まれているライブラリの更新を取得するためには再起動する必要があります。

    インクルードファイルまたはパスの名前は、変数を介して動的に指定することもできます。 これにより、 '-v' CLIオプション を使用して外部からライブラリ名を渡すことができます。

    書式
    include <file_or_Java_resource>
    *赤色は必須パラメータを示します

    オプション
    file

    - TPRテストスクリプトファイルまたは含まれるJavaリソース(JAR / ZIPファイルまたはクラスパス)。 ファイル名は、相対(例えば sayHello.tpr )か絶対(例えば /root/scripts/sayHello.tpr )の どちらか です。 HeartCore Roboは、ファイルが存在するかどうかをチェックし、すべての スクリプトのコンパイル 中に読み取り可能であり、そうでない場合はエラーを報告します。 ファイルは、変数を使用して指定することもできます(例を参照)。

    戻り値
    コマンドは常に0(ゼロ)を返します。 指定されたファイルが見つからない場合、HeartCore Roboはゼロ以外の戻り値を返すのではなく構文エラーを報告します。

    使用例
    Include sayHello.tpr

    - sayHello.tpr このコマンドを呼び出すスクリプトと同じディレクトリにある、 呼び出されたスクリプトからすべての変数とプロシージャをロードします 。


    Include /root/scripts/sayHello.tpr

    - /root/scripts/sayHello.tprディレクトリに あるスクリプトからすべての変数とプロシージャをロードします 。


    Var PROFILE=profile1.tpr
    Include {PROFILE}


    - 変数で指定されたスクリプトをインクルードします。 設定が異なるスクリプトがさらにある場合は、'-v PROFILE=profile2.tpr'などを使用してCLIから別のスクリプトを組み込むことができます 。

    Include
     
    C:\projects\TestLib\testlib.jar
    Run mypackage.MyTestScript

    - 指定された場所からJavaライブラリ(JARファイル)をロードし、そこからテストスクリプトを実行します。 これは、有効なJavaテストスクリプトであるMyTestScriptというコンパイル済みクラス( DefaultJavaTestScript クラスを 拡張する か、少なくとも JavaTestScript インターフェイスを 実装する )を 持つ "mypackage"というパッケージ(ディレクトリ)をJARファイルが含んでいることを前提としています 。 詳細については、 以下の 「 実行」コマンドを 参照ください。



    3.2.11 Pause


    説明
    次へ | 前へ | トップ^
    Pause - スクリプトの実行を一時停止します。 HeartCore RoboがGUIモードで実行されている場合、一時停止ボタン/メニュー項目が選択され、ユーザーはボタンまたはメニュー項目の選択を解除して実行を再開できます。 スクリプトがCLIモードで実行されている場合、メッセージがコンソールに出力され、ユーザーはキーを押して実行を再開できます。

    Pauseコマンドは、例えば、暴走動作が検出されたときに実行を一時停止するために使用できます。 通常の方法は、エラー終了コード(例えば、 'Exit 1' )で スクリプトを終了する ことですが、一部のテストスイートでは責任者に電子メールを送信し、実行を一時停止した後、人手を待つものもあります。

    構文
    pause <description>

    オプション
    説明

    - スクリプトを一時停止した理由とログ(オプション)。 この説明は、レポートに表示され(定義されている場合)、CLIモードの実行時にはコンソールに出力されます。

    戻り値
    コマンドは常に0(ゼロ)を返します。

    使用例
    Compareto "application.png"
    if ({_EXIT_CODE} > 0) {
        # Cry for help - send a screenshot via E-mail and pause
        Screenshot runaway.png
      Sendmail to="tester@dummyserver.com" from="robot@dummyserver.com" server="mail.dummyserver.com" subject="Runaway behavior detected - see attached picture. Please help!" attach="{_REPORT_DIR}/runaway.png"
        Pause "Runaway behavior detected"
    }

    - 画像の比較に失敗した場合は、スクリーンショットを電子メールでテスターに​​送信し、実行を一時停止します。



    3.2.12 Run


    説明
    次へ | 前へ | トップ^
    Run - 次のいずれかの別のスクリプトを実行します。
    1. HeartCore Robo Desktopでは、TPRテストスクリプト(通常は .tpr ファイル)内でRunコマンドを実行すると、呼び出したメインスクリプトに書かれているかのようにコマンドを処理します。つまり 、実行されたスクリプトによって定義されたすべての プロシージャ 変数、 スクリーンショット レポートジェネレータ は実行リポジトリに残り、 Run コマンドが終了するとスコープが設定されたExitコマンドを使用して、実行されたスクリプトからメインスクリプト に戻ることができます。
    2. Javaソースファイル .java ファイルで なければならず、 バージョン2.2からサポートされてい なければなりません )。 このクラスは、 DefaultJavaTestScript クラス を拡張する か、少なくとも JavaTestScript インターフェイスを 実装 する有効なHeartCore Robo Desktop Javaテストスクリプトでなければなりません 。 Runコマンドは、ソースコードをコンパイルし、クラスをインスタンス化し、その test() メソッド を実行し ます。 この呼び出しで Javaコンパイラ に アクセスする必要があるため 、HeartCore Robo Desktopは Java Development Kit(JDK) 上で実行する か、JDKインストールへのパスを設定する必要があり ます } 2.3.3からサポートされています)。 ツールがJava Runtime Environment(JRE)上でのみ実行され、JDKが使用できない場合、ツールはエラーを報告します。 手順について は、 リリースノートの 第1章を参照し てください。
    3. Javaクラス名 (バージョン2.2からサポート) これは、 DefaultJavaTestScript クラス を拡張する か、少なくとも JavaTestScript インターフェイスを 実装 する、有効なHeartCore Robo Desktop Javaテストスクリプトに対応する完全修飾Javaクラス名(パッケージ+クラス名)でなければなりません 。 クラスには、デフォルト(パラメータなし)のコンストラクタが必要です。 Runコマンドは、クラスを名前でインスタンス化し、そのtest()を実行し ます。 この方法はJavaコードのコンパイルを伴わないため、パフォーマンスのオーバーヘッドを最小限に抑えて非常に高速であり、実動シナリオでの使用を推奨します。 コンパイルされたクラスコードは、3つのサポートされている方法のいずれかでHeartCore Robo Desktopクラスパスに配置する必要があります。
    バージョン2.2では 、必須ファイル/クラス引数の後にコマンドラインで指定された <name> = <value>の 形式のオプションパラメータのサポートも提供してい ます。 これらのパラメータは、実行されたスクリプトまたはJavaクラス内でのみ有効なローカル変数として、実行されたスクリプトに公開されます。 TPRスクリプトでは、パラメータを標準変数として名前で呼び出すことができます。 Javaコードの側面では、 getContext()。getVariable() メソッド、またはScriptingContext インタフェースで 定義された 便利なメソッド getVariableAsXXX() のセットを通じて取得できます。

    Run コマンドは、コードの一般的なスニペット(ライブラリ)を実装するため、または個々のテストケースのテストコードを分離するために効果的に使用できます。 バージョン2.2で提供されたJavaサポートの拡張により、パラメータ化されたJavaルーチンのライブラリを実装し、TPRスクリプトからそれらを呼び出すことができます。 これは、プラグインのメカニズムを使わずにスクリプト言語にカスタム機能を追加する効率的な方法です。

    構文
    run <file_or_class> [<param1> = <value1> ... <paramN> = <valueN>]
    *赤色は必須パラメータを示します

    オプション
    file

    - ファイルは次のいずれかになります。

    1. TPRテストスクリプトファイル(* .tpr)またはJavaテストスクリプトファイル(* .java)。 このファイルは、現在のスクリプトファイル(たとえば sayHello.tpr )またはabsolute( /root/scripts/sayHello.tpr )に 関連するファイルでもかまいません 。 HeartCore Roboは、ファイルが存在するかどうかをチェックし、すべてのスクリプト検証中に読み取り可能であり、そうでなければエラーを報告します。
    2. 完全修飾Javaテスト・スクリプト・クラス名(例えば、 org.mytests.DoSomething )。 指定されたクラスはJavaクラスパス上になければなりません。 詳細については、 コマンドの説明 を参照してください 。

    <param>=<value>

    - オプションのパラメータとその値のリスト。 実行されたファイルはローカル変数の形で利用可能になります。


    戻り値
    Runは、最後に実行されたコマンドによって返されたコードを常に返します。 指定されたファイルが見つからない場合、HeartCore Roboはゼロ以外の戻り値を返すのではなく構文エラーを報告します。

    使用例
    Run sayHello.tpr

    - sayHello.tpr このコマンドを呼び出すスクリプトと同じディレクトリにある sayHello.tprというスクリプトを実行します 。


    Run /root/scripts/sayHello.tpr

    - /root/scripts/ディレクトリにあるsayHello.tprという名前のスクリプトを実行します。


    Run /root/scripts/MyTest.java

    - 指定されたJavaソースコードファイルを実行します。 com.tplan.robot.scripting.DefaultJavaTestScriptを 拡張するクラスである か、少なくとも com.tplan.robot.scripting.JavaTestScript インターフェイスを 実装 するクラスでなければなりません 。 このファイルは、まずJavaコンパイラAPIを使用してバイトコード形式にコンパイルされ、インスタンス化されて実行されます。 これは、HeartCore Robo DesktopがJDKディストリビューションからJava上で実行されるか、またはJDKインストール(v2.3.3以降)への有効なパスで構成されている場合にのみ機能します。

    Run com.testsuite.MyDummyTestScript server="rfb://localhost:5901" pass="welcome"

    - Javaテストスクリプトクラスをインスタンス化して実行します。 クラスはJavaクラスパス上になければならず、 com.tplan.robot.scripting.DefaultJavaTestScriptを 拡張する か、少なくとも com.tplan.robot.scripting.JavaTestScript インタフェースを 実装する必要があります。 コマンドライン上の2つのパラメータは、変数としてコンテキストに挿入されます。 しかし、それを使用するかどうかは、実行されるクラスによって異なります。


    Var SCRIPT_TO_EXECUTE=sayHello.tpr
    Run "{SCRIPT_TO_EXECUTE}"

    - 変数で指定されたスクリプトを実行します。



    3.2.13 String


    説明
    次へ | 前へ | トップ^
    String - テキストを処理または解析します。 このコマンドでは、引数テキストにテキスト処理関数を適用することができます。 ブーリアン式 をif/else文で "contains"、 "startswith"、 "endswith"、 "matches"などの基本的な文字列 "test"演算を実行することができます。Stringコマンドは、 1つまたは複数の操作のテキスト処理もできます。

    引数テキストに 変数呼び出し が含まれている場合は 、テキストが処理される前に解決されます(値に置き換えられます)。 コマンドは _STRING接頭辞付き変数の セットを入力 します。

    変数名 説明
    _STRING=<operationResult>
    文字列分割 」を除くすべての操作に対して実行された操作の結果 。
    コマンドで "var" パラメータを使用してカスタム出力変数を定義する場合
    、デフォルトの_STRING変数は作成されません。
    _STRING_COUNT =<stringCount> 「文字列分割」 操作 によって生成されたトークンの数 。
    _STRING <n>=<token> <n>が 1〜_STRING_COUNTの間 で ある 「文字列分割」 操作 のn番目のトークン(部分文字列)。
    コマンドで "var" パラメータ
    を使用してカスタム出力変数のベース名を定義すると、デフォルトの_STRING <n>
    変数は作成されません。

    操作の結果は、デフォルトで_STRING変数またはオプションの 'var' パラメータで 指定されたカスタム変数に保存されます。操作で複数の値( 'split' 操作など)が生成されると、各値は_STRING1、_STRING2などの番号付き変数、または 'var' パラメータで 指定された名前から派生した同様の番号付き変数セットに保存されます。 値の数は_STRING_COUNT変数に格納されます。


    コマンドの基本構造は次のとおりです。

    String<operation> "<text>"[<parameters>]

    アルファベット順にサポートされている操作を以下に示します。 名前はほとんどの場合、 java.lang.String のJavaクラスメソッド名から派生しています。
    v3.5.2以降、コマンドはまた ファジーテキストマッチング を実行することを可能にしました。 詳細については、 "matches"コマンド を参照ください。

    String indexof "<text>" String=<text>[start=<index>] [end=<index>] [distance=<number>] [var=<variable_name>] *赤色は必須パラメータを示します

    オプション
    text

    - 処理するテキスト。

    string

    - テキスト内で検索する文字列。

    start

    - 検索を開始するためのオプションの開始インデックス。 数値 または有効な数値式でなければなりません 。 インデックス付けはゼロから始まり、ゼロはテキストの先頭(最初の文字)を参照します。 デフォルトの開始インデックス値は0です。

    end

    - 検索を終了するオプションの終了インデックス。 数値 または有効な数値式でなければなりません 。 デフォルト値は、テキストの長さ(テキストの終わり)です。


    distance

    - 許容 文字列 検索を実行するための " string"パラメータ と組み合わせて使用する文字列の場所 (オプション、3.5.2以降でサポート)。 パラメータがデフォルト値の0(距離なし)に設定されている場合、コマンドは単純文字列検索に戻ります。ここで引数テキストは、指定された文字列の最初の出現文字数を検索します。

    トレラント(ファジー)テキスト検索は、 1以上の距離値に対して実行されます。 テキストは、指定された文字列に似た文字列の出現が検索されます。 公差(類似度)は Levenshteinの距離 に基づいています。 これは、1つの文字列を他の文字列に変換するために必要な編集の最小数として定義され、許容可能な編集操作は1文字の挿入、削除、または置換です。 距離は、サンプルテキストと同等であると見なすために、省略可能または最大で正しく認識されない文字の数を概ね指定します。

    検索の代わりに ファジーテキストマッチング を実行するには、 String matches コマンドを 使用します。

    var

    - 結果のインデックスを格納する変数のオプションの名前。 このパラメータを指定しないと、結果はデフォルトの_STRING変数に格納されます。

    戻り値
    String IndexOfコマンド 指定文字列がテキストの中で見つかった場合、戻り値0(ゼロ)を返し、そうでなければ1を返します。 さらにコマンドは、_STRING変数(または 'var' パラメータで 指定されたカスタム変数)にインデックス(見つからなければ-1)を格納します。 インデックス付けはゼロから始まり、ゼロはテキストの先頭(最初の文字)を参照します。

    使用例
    String indexof "Demo text" string="text" var=result 

    - "Demo text"の "text"の位置(インデックス)を取得し、 "result"変数に5の結果を格納します。
    String indexof "Demo text" string="test" var=result  distance=1 
    - 前の例と同じですが、 "text"の単語は、 "test"の指定された文字列によって配置されます。これは、1の距離内にあるためです。

    String length"<text>" [var=<variable_name>] *赤色は必須パラメータを示します

    オプション
    var

    - 結果のテキストの長さを格納する変数のオプションの名前。 このパラメータを指定しないと、結果はデフォルトの_STRING変数に格納されます。

    戻り値
    'String length' コマンドは常に0(ゼロ)を返し、_STRING変数または 'VAR'で指定したカスタム変数に引数のテキストの長さ(文字数)を保存します。

    使用例
    String length "Demo text" var=len 

    - "デモテキスト"(9)の長さを "len"変数に格納します。


    String matches" <text>"pattern="<REGULAR_EXPRESSION>" [VAR=<variable_name>]
    String matches "<text>"string="<text>" [distance=<number>] [var=<variable_name> ]
    *赤色は必須パラメータを示します

    オプション

    pattern

    - java.util.regex.Pattern 準拠の正規表現。 "." の正規表現 行終端文字を除くすべての文字にデフォルトで一致します。 この動作は、コマンドの設定で変更される可能性があります。

    式は テキスト全体と 一致する必要があることに注意してください 。 このコマンドは、式に一致する部分をテキストで検索しません。たとえば「test」単語のテキストを検索する場合 ".*test.*" を使用する必要があります。この場合「またはいずれかを含んでも含まなくてもよい『test』(.*)」を意味します。 

    string

    - テキストを検索するための文字列です(3.5.2からサポートされています)。 


    distance

    - ファジーテキストマッチングを実行するために " string" パラメータ と一緒に使用されるオプション(3.5.2以降でサポート)。 パラメータがデフォルト値の0(距離なし)に設定されている場合、コマンドは引数文字列が指定された文字列と等しいかどうかをテストする単純文字列比較に戻ります。

    トレラント(ファジー)テキストマッチングは 1以上の距離値に対して実行されます。 テキストは、指定された文字列と似ているかどうかがテストされます。 公差(類似度)は Levenshteinの距離 に基づいています。 これは、1つの文字列を他の文字列に変換するために必要な編集の最小数として定義され、許容可能な編集操作は1文字の挿入、削除、または置換です。 距離は、サンプルテキストと同等であると見なすために、省略可能または最大で正しく認識されない文字の数を概ね指定します。

    指定された文字列は引数テキスト全体と一致する必要があることに注意してください。 ファジーテキスト検索 を実行し て、指定した文字列に似た文字列を検索するには、代わりに String indexof を使用します。

    var

    - 結果のブール値フラグ(true / false)を格納する変数のオプションの名前。 このパラメータを指定しないと、結果はデフォルトの_STRING変数に格納されます。

    戻り値
    'String match' コマンドでは、テキストが正規表現または通常表現で一致した場合0(ゼロ)を返しそうでない場合1を返します。 さらにコマンドは、結果を 'true'または 'false'として_STRING変数または 'var' パラメータで 指定されたカスタム変数に格納します。

    使用例

    File open file="C:\data.txt"
    Var result=-1
    for (i=1; {i}<{_FILE_LINE_COUNT}+1; i={i}+1) {
       File read line={i}
       String matches "{_FILE_READ}"
    pattern="[a-z]*"
      
    if ({_EXIT_CODE} == 0) {
           Var result={i}
           Break
          }
    }

    - データファイルを開き、行ごとに読み込み、それぞれを指定された正規表現と照合します。 行が一致する場合は、行番号を "result"変数に保存して停止します。

    // Create a sample text
    Var TEXT= "this is sample text"

    // This command will 戻り値 0 (pass) because the specified
    // pattern will match any text containing "simple" or "sample"
    String "matches" "{TEXT}" pattern=".*s[ia]mple.*"

    // This will return 0 because the text does not contain "simple"
    String "matches" "{TEXT}" string="simple"

    // This will return 0 because the text contains "sample"
    // which has only one character different from "simple"
    String "matches" "{TEXT}" string="simple" distance=1

    - さまざまな方法でサンプルテキストをテストします。

    Strng replace "<text>"string="<text>" replacement="<text>"[VAR=<variable_name>]
    String replace "<text>"pattern="<REGULAR_EXPRESSION>" replacement="<text>" [var=<variable_name>]
    *赤色は必須パラメータを示します

    オプション
    replacement

    - 新しい文字列(置き換え)。

    string

    - 古い文字列(テキストに置き換えられる)。

    pattern

    - java.util.regex.Pattern の文字列を表す準拠の正規表現を交換します。 "." の正規表現 行終端文字を除くすべての文字にデフォルトで一致します。 この動作は、コマンドの設定で変更される可能性があります。

    var

    - 結果の新しいテキストを格納する変数のオプションの名前。 このパラメータを指定しないと、結果はデフォルトの_STRING変数に格納されます。

    戻り値
    'Strig replace' コマンドは少なくとも一つの置換を行う場合戻り値0(ゼロ)を返し、交換が行われていない場合1を返します。 得られた新しいテキストは_STRING変数、または 'var' パラメータ によって指定されたカスタム変数に格納されます。

    使用例

    String replace "bad fat cat" string="b" replacement="s"

    - _STRING変数を "sad fat cat"で更新し、文字列が更新されたために0を返します。

    String
    replace "bad fat cat"
    pattern="[bf]a[td]" replacement="cat"

    - _STRING変数を "cat cat cat"で更新し、文字列が更新されたため0を返します。


    String split "<text>" [var=<variable_name>]
    String split "<text>" pattern="<regular_expression>"  [var=<variable_name> ]
    *赤色は必須パラメータを示します

    オプション
    String

    - 分割する区切り文字(区切り文字)。

    pattern

    - java.util.regex.Pattern 準拠の正規表現で分割する。 "." の正規表現 行終端文字を除くすべての文字にデフォルトで一致します。 この動作は、コマンドの設定で変更される可能性があります。

    var

    - 結果の文字列を格納する変数のオプションのベース名。 このパラメータを指定しないと、結果はデフォルトの番号付き_STRING <数値>変数に格納されます。

    戻り値
    'String split' コマンドは常に0(ゼロ)を返します。 解析された各値は、_STRING1、_STRING2などの番号付き変数、または 'var' パラメータで 指定された名前から派生した同様の番号の変数セットに保存されます。 値の数は_STRING_COUNT変数に格納されます。

    使用例

    String split "bad fat cat" string=" " var="s"

    - スペースでテキストを分割します。 "s"のカスタム変数のベース名が指定されると、このコマンドは3つの変数s1 = "bad"、s2 = "fat"、s3 = "cat"のセットを生成します。 _STRING_COUNT変数は3に設定されます。


    String
    split "bad, fat cat" pattern="[,]* "

    - テキストをスペースで区切ります。スペースはカンマで前に付けることもできます。 前の例と同様に、コマンドは3つの変数_STRING1 = "bad"、_STRING2 = "fat"、_STRING3 = "cat"のセットを生成します。 _STRING_COUNT変数は3に設定されます。


    // Directory to work with.
    Var DIR=/tmp

    // List the directory contents (Linux/Unix).
    // For Windows replace the "ls" command with "command.com /C dir /B"
    Exec "ls {DIR}"

    // Split the directory listing by lines
    String split "{_EXEC_OUTPUT}" pattern="\r?\n"

    for (i=1; {i}<{_STRING_COUNT}+1; i={i}+1) {

      // Replace floating point from index (not needed on 2.3.3+)
      String replace "{i}" pattern="[.].*" replacement=""

      Var f="{_STRING{i}}"

      // If the file is a .png or a .jpg image display it for 3 seconds
      if ("{f}" endswith ".png" || "{f}" endswith ".jpg") {
        Connect "file://{DIR}/{f}"
        Wait 3s
      }
    }

    - ディレクトリに画像スライドショーを実行する。 「文字列分割」コマンドは、ディレクトリリストを個々のファイルに分割するために使用されます(1行に1ファイルが必要です)。 解析された文字列(ファイル名)は既知の画像拡張子があるかどうかがチェックされ、Robotのデスクトップビューに3秒間表示されます。



    String
    substring  substring"<text>"start=<index>  [end=<index>] [VAR=<variable_name> ]
    String substring "<text>"end=<index>  [start=<index>] [var=<variable_name>]
    *赤色は必須パラメータを示します

    オプション
    start

    - 開始インデックス(数値または有効な数値式)。 インデックス付けはゼロから始まり、ゼロはテキストの先頭(最初の文字)を参照します。 デフォルト値は0です。

    end

    - 終了インデックス(数値または有効な数値式)。 デフォルト値はテキストの長さ(テキストの終わり)です。

    var

    - 結果の部分文字列を格納する変数のオプションのベース名。 このパラメータを指定しないと、結果はデフォルトの_STRING変数に格納されます。

    戻り値
    'String substring' コマンドの開始と終了インデックスがテキスト内の有効な位置を指す場合に0(ゼロ)を返します。 開始位置が無効(つまり、0より小さいか、またはテキストの長さ以上)である場合、コマンドは開始インデックスを0に設定し、1を返します。 終了位置が無効な場合(つまり、開始位置またはテキスト長より大きい場合)、コマンドは終了インデックスをテキスト長のデフォルト値に設定し、2を返します。 戻り値に関係なく、_STRING変数(または 'var' パラメータを 通したカスタム 値)は常に開始位置と終了位置の間に新しい部分文字列が設定されます。

    使用例

    String substring "bad fat cat" start="4" var="s"

    - 最初の4文字を削除し、 "s"変数を "fat cat"に設定します。

    String length "bad fat cat" var="len"
    String substring "bad fat cat" start="{len}-3" end="{len}-2"

    - 3番目の最後の文字( "c")を_STRING変数に挿入します。


    String tostring   " <text>" unicode = <index>  [var = < variable_name > ]
    *赤色は必須パラメータを示します

    オプション
    unicode

    - 1つの数字のUnicode / ASCIIコード、またはセミコロンで区切られた文字列に変換されるコードのリスト。 リスト内の各コードは java.lang.Integer.decode() メソッド によって解析されている ので、10進数、16進数(先頭に '0x'または '#'、たとえば '0xF0'または '#F0 ')または8進数。 たとえば、 '@'文字は '64'(10進数)、 '0xF0'、 '#F0'(16進数)または '0100'(8進数)として指定できます。 文字コードのリストについては、 Wikipediaの ASCII および Unicodeの 表を 参照してください 。

    var

    - 結果の文字列を格納する変数のオプションのベース名。 このパラメータを指定しないと、結果はデフォルトの_STRING変数に格納されます。

    戻り値
    'String toString' コマンドでは成功の場合0(ゼロ)、一つ以上のコードが有効なASCII / Unicode文字に対応していないとき1を返します。 成功した場合のコマンドは、_STRING変数(または 'var' パラメータを 通って渡されたカスタム変数 )に変換された文字列を 取り込みます 。

    使用例

    String tostring "104;101;101;108;111" var="s"

    - "s"変数に "hello"を入力します。

    String tostring "0xF1" var="s"
    Var tomorrow="ma{s}ana"

    - "tomorrow"変数を "mañana"に設定します。



    String trim  "<text>"[var=<variable_name>]
    *赤色は必須パラメータを示します

    オプション

    var

    - 結果の文字列を格納する変数のオプションのベース名。 このパラメータを指定しないと、結果はデフォルトの_STRING変数に格納されます。

    戻り値
    'String trim' コマンドは常に0(ゼロ)を返します。 成功した場合のコマンドは、_STRING変数(または 'var' パラメータで 渡されたカスタム変数 )にトリムされた文字列を設定します。

    使用例

    String trim " Hello!  " var="s"

    - "s"変数を "Hello!"に設定します。


    3.2.14 Var


    説明
    次へ | 前へ | トップ^
    Var - スクリプト変数を定義します。 スクリプト変数サポートの一般的な説明については 、 変数 の章を 参照してください 。

    書式設定されたテキスト(複数の行、タブなど)を作成するには、 Varf コマンドを 使用します 。 数値式の値を評価(計算)して変数に格納するには、 Eval コマンドを 使用し ます。

    下線( '_')で始まる変数は、あらかじめ定義された変数と呼ばれます。 これらは、通常、HeartCore Robo Desktopまたはそのコマンドによって提供され、実行コンテキストおよび操作結果に関する情報を提供する有用な値を含みます。 以下が最も重要なものの一部表です。

    誰が作成するのか 変数名 説明

    クライアント

    デスクトップサーバー からクリップボードの変更 を受け取っ た とき の HeartCore Robo
    _SERVER_CLIPBOARD_CONTENT = <text>

    リモートデスクトップのクリップボードの内容。 通常は 、リモートデスクトップでコピーアクション(Ctrl + C)を実行し
    た結果など、サーバーのクリップボードが変更
    された後に表示されます。 この
    メカニズムは、「サーバーからクライアントへの転送」と呼ばれます。

    バージョン3.4以降では、双方向クリップボードの更新がサポートされています。 スクリプト
    は、 Var または Eval コマンドを 使用して変数を設定し 、サーバーの
    クリップボードの内容 を変更できます 。 このメカニズムは、「クライアントからサーバー
    への転送」 と呼ばれます 。

    クリップボードとの間でテキストをやりとりする機能は、接続
    タイプとサーバーのベンダーによって異なります。VNC接続 サーバは双方向転送をサポートしています。 UltraVNC、RealVNCのいずれかです。 TightVNCは、クライアントからサーバー への転送を サポートしていない ため、サーバーをクライアントから有効にするには追加のユーティリティが必要 です。 他のサーバーはテストされていないため、動作確認は取れていません。 ローカルデスクトップ接続は、双方向転送をサポートしています。







    ローカルのクリップボードがポーリングメカニズムを使用して200msごとにチェックされ
    ている場合、Ctrl + C
    を 押してからスクリプトが少なくとも200ms待つ ようにして、変数が正しく設定されるようにする必要があります。 クリップボードの内容は、
    再呼び出し後に変更される可能性があり、 Type Typeline または Press
    などで、部分的にキーボードの出力を実行する場合、ローカルクリップボードに依存しています。

    他の接続タイプはクリップボード転送をサポートしていません。 より多くのクリップボード
    関連の機能については、 Waitfor clipboard コマンドを参照ください。

    クライアント

    デスクトップサーバー からクリップボードの変更 を受け取ったとき
    _SERVER_CLIPBOARD_CONTENT_TEXT =<text> この変数は、
    上記 の_SERVER_CLIPBOARD_CONTENTと同じ規則に従い 、2つの例外を除いて保存します。 クリップボードにHTMLドキュメントまたはHTMLコードのチャンクが含まれている場合、変数は
    HTMLから抽出された プレーン テキストコンテンツで作成されます。 それ以外の場合、2つの変数の内容
    は等しくなります。 この変数を設定しても、サーバーのクリップボードは更新されません。
    4.1.1以降でサポートされています。

    スクリプト実行
    が開始
    されたとき、またはスクリプトがコンパイルされたとき
    _DATE = <yyyyMMdd> 実行開始日 ("yyyyMMdd"形式)の場合、
    たとえば、2005年5月8日は「20050508」と定義されます。 形式は 、ユーザー設定
    [ 言語 ]パネルで カスタマイズできます。 現在の日付
    を取得するに は、 以下 の_CURDATE変数を参照してください 。
    _TIME =<HHmmss> "HHmmss"フォーマットでの実行開始時刻は24時間です。
    たとえば、3:10:33 pmは「151033」と定義されます。 形式は 、ユーザー設定
    [ 言語 ]パネルでカスタマイズできます。 ミリ秒単位で現在の時刻 を取得するに は、 以下 の _CURTIME 変数を 参照ください 。
    現時点のフォーマットされたバージョンが必要な場合 は、カスタムフォーマットの _CURDATE を 使用してください。
    _FILE = <file> 実行されたスクリプトの絶対パスです(例: "/root/test.txt")。
    _FILENAME = <file_name>
    スクリプトファイル名(例: "test.txt")。
    _REPORT_DIR = <pass>
    スクリーンショットとレポートのターゲットディレクトリ。 すべてのスクリーンショットとレポート
    は、絶対パスで指定されていない限り、このディレクトリに保存されます。
    この変数をスクリプトで明示的に設定すると
    、次のように定義され たデフォルトのパスが上書き されます。
    1. ユーザープリファレンスの [ 言語 ]パネル のグローバルパスは、 入力された場合に最も高い優先度を   持ち ます。
    2. スクリプトがプロジェクトの一部である場合、パスはデフォルトで
      プロジェクトのレポートディレクトリに作成され た一意のフォルダになります (v4.0以降)。 それ以外の場合
      は、ユーザーのホームフォルダ(v3.xのデフォルト動作)に戻ります。
    パスは、 pass コンポーネント を通じて快適に設定でき ます。
    _REPORT_FILE = <file> レポートへの絶対パス(スクリプトによってレポートが作成されている場合)。
    v4.0以降で サポートされ ています。
    _REPORT_FILE_RELATIVE = <file> _REPORT_DIRで指定されたレポートフォルダの相対的なレポートファイルのパス。
    v4.1.3以降でサポートされています。
    _TEMPLATE_DIR = <pass>
    画像比較のためのテンプレート画像を含むソースディレクトリ。
    イメージ比較を使用するコマンド
    は、相対パスで指定された すべての テンプレートを このディレクトリで検索し ます。
    この変数をスクリプトで明示的に設定すると
    、次のように定義され たデフォルトのパスが上書き されます。
    1. ユーザープリファレンスの [ 言語 ]パネル のグローバルパスは、 入力された場合に最も高い優先度を   持ち ます。
    2. スクリプトがプロジェクトの一部である場合、パスはデフォルトでプロジェクトテンプレート
      ディレクトリ(v4.0以降)になります。 それ以外の場合は、ユーザーのホームフォルダ
      (v3.xのデフォルト動作)に 戻ります 。
    パスは、 pass コンポーネント を通じて快適に設定でき ます。
    _SCRIPT_DIR = <pass>
    現在実行されているスクリプトがあるディレクトリ(絶対パス)。
    _WARNING_COUNT = <count>
    スクリプトの実行中に Warning
    コマンド によって生成された警告の数 。
    _CURDATE_FORMAT = <format>
    _CURDATE 動的変数の 日付/時刻形式 。java.text.SimpleDateFormat 仕様に
    準拠し た文字列でなければなりません 。 たとえば 、変数を「yyyy」 に 設定すると、後で 「 _CURDATE 」 を使用し て「2010」(現在の4桁の形式)が生成されます。 この 変数を空の文字列に 設定 すると、フォーマットがデフォルト値に戻ります。



    _RANDOM_MIN = <integer_number>
    _RANDOM_MAX = <integer_number>

    動的変数 _RANDOMに 使用される ランダム値ジェネレータの最小値と最大値 。 デフォルト値は1と
    100000です。
    _RGB_X = <x_coordinate>
    _RGB_Y = <y_coordinate>
    デスクトップイメージからRGBを取得するために使用される座標。 ユーザー
    は、これらの2つの変数を希望の座標に設定
    して _RGB 動的変数 を使用してピクセルカラーを取得することを推奨します。
    _INSTALL_DIR = <installパス >
    インストールディレクトリ。 これは、robot.jarファイルの場所と同じです。 ディレクトリ
    は絶対パスであり、ファイル区切りで終わらない。 v2.3以降でサポートされています。
    _ENV_ <variable_name> = <number>
    環境変数。 これらは、
    ホスティング・オペレーティング・システム によって提供されるOS固有の変数 です。 これらの変数は 、環境設定 ウィンドウのスクリプト - >言語パネルでその ような
    オプションが選択されて いると入力されないことがあり ます。 v2.3以降でサポートされています。
    _EXECUTION_SPEED_FACTOR = <float_number>
    'wait'スクリプトタイムと 'timeout'スクリプトタイムを掛け合わせる要因。 これにより
    、スクリプトの実行をスピードアップまたはスローダウン できます 。 変数は
    Preferences-> Execution パネルで 指定された値に 初期化 されます 。 デフォルト値
    は1で、 '100%'を意味します。 たとえば、スクリプトを遅くして
    すべての待機時間を50%長くするには、値を '1.5'に設定します。 3.2からサポートされています。
    _FS = <ローカル_OS_ファイル_セパレータ>
    _FPS = <ローカル_OS_ファイル_パス_セパレータ>
    ローカルOSのファイルセパレータ(Windowsではバックスラッシュ、Linux / Unixではスラッシュ '/')
    、ファイルパスセパレータ(Windowsではセミコロン '; Linux / Unixではコロン': ')
    区切り文字
    を使用すると、任意のシステムからテストスクリプトを実行できるように 、OSに依存しない相対パスとパス リスト を構築 できます。 たとえば
    、 ".. \ data" の相対的なWindowsパスが".. {_ FS} data" と指定されている場合、スクリプト
    はすべてのUnix / Linuxシステムでも正しく動作します。
    _STEP_SUMMARY_FORMAT = <形式>
    _STEP_SUMMARY 動的
    変数 によって生成されたステップサマリーの書式 。 形式には
    、1つのステップ結果をサマリーに追加 する方法 を 定義する任意の文字列を使用できます 。 ルール:

    - 「{<PARAM>}」ここで、<PARAM>有効小文字のすべての発生 段階の
    コマンド
    パラメータ名( nameexpectedactualinstructnotes )、
    又は result キーワードは、対応するステップ属性に置き換えられます。

    - <param>文字列が大文字の場合(たとえば {RESULT}
    大文字の属性値 で 置き換えられます。

    - "\ n"の文字列が改行文字に置き換えられます。

    デフォルトのフォーマットは次のとおりです。
    Step "{name}": {RESULT}\n
    次のような要約を生成します。
    Step "Click button1": PASS
    Step "Click button2": PASS
    Step "Click button3": FAIL
    3.5.1以降でサポートされています。

    変数が使用さ れるたびにHeartCore Robo 。
    これらの変数の 値 は
    、変数呼び出し時に 作成さ れるため、「動的 変数」
    と呼ばれます

    _CURTIME = <time_in_milliseconds>
    この変数が使用されるたびに 、UTC 1970年1月1日の
    深夜からの現在のシステム時間(ミリ秒単位 )に動的に置き換えられ
    ます。 この変数を使用して
    、コマンドまたはコマンド・ブロックの実行に要した時間 を計算 したり
    、リモート・システムのパフォーマンスを測定 することができます 。
    _CURDATE = <フォーマットされた日時 >
    現在の時刻および/または日付を読み取ります。 形式は
    、スクリプトで _CURDATE_FORMAT 変数 を使用して指定できます。
    変数が設定されていない場合、フォーマットはデフォルトでユーザ設定の値になります。 (ユーザー設定の「言語」パネルを参照してください)。どちらのプリファレンスも設定されていない場合、フォーマットはデフォルトの java.util.Date().toString() によって生成されたものになります。
    _MOUSE_X = <X_座標>
    _MOUSE_Y = <Y_座標>
    現在のマウスポインタのX、Y座標を返します。 ツールが
    デスクトップに 接続さ れて いない か、接続後にまだマウスイベントが登録されていない場合
    、座標は[0、0]を返します。
    _RANDOM = <random_integer>
    変数を使用するたびに、ランダムな整数値が生成されます。
    範囲はデフォルトで[ 1、100000 ]に設定されて
    おり 、_RANDOM_MIN 変数と_RANDOM_MAX変数 で変更できます(上記参照)。
    _RGB = <RGB_color> 変数が使用されるときはいつでも
    _RGB_Xおよび
    _RGB_Y
    変数で 指定された座標によってポイントされる デスクトップ イメージピクセルの 現在の色を取得し ます。 これは、
    画面上の 場所に 特定の色が含ま れているかどうかをテストするために使用できます 。
    _RGB_Xおよび_RGB_Y変数をターゲット座標 に設定し てから、_RGB変数を呼び出し
    て色を取得することをお勧めします。

    ピクセル値は、HTML形式の書式文字列、
    6文字の長さで 返され 、R、G、Bコンポーネントがこの順序で指定されます。
    小文字の16進数の値(コンポーネントあたり2文字)。
    例えば、RGB(
    255,255,255)の白色は 「ffffff」として表され 、RGB(0,255,0)の緑色は「00ff00」を生成する。

    [234,128]のピクセルが緑であるかどうかをテストする典型的な例: このメカニズムは、単純な正確なカラーマッチングにのみ適しています。 以下のために 特定の色またはオブジェクトの画面領域のより一般的な試験 色合い参照オブジェクト検索によって使用されるアルゴリズムのcompareToスクリーン 'とを

    Var _RGB_X=234 _RGB_Y=128
    if ("{_RGB}" == "00ff00") {
       // The pixel is green
    }




    Waifor match 'コマンドを使用します。
    _STEP_SUMMARY = <step summary>
    プレーンテキスト
    これまでにスクリプト 内 に 記録され た ステップ結果の要約(ステップごとに1行) 。 例えば:
    Step "Click button1"
    Step "Click button2"
    Step "Click button3" fail
    Var SUMMARY="{_STEP_SUMMARY}"
    上のコードを実行した後、SUMMARY変数には以下が含まれます:
    Step "Click button1": PASS
    Step "Click button2": PASS
    Step "Click button3": FAIL
    要約フォーマットは、テストスクリプトのスコープ
    _STEP_SUMMARY_FORMAT 変数を使用して カスタマイズすることも 、ステップ
    コマンドのプリファレンスを 介してグローバルに カスタマイズすることもでき ます。 両方の方法を使用すると、変数の
    優先順位 が高くなり ます。 3.5.1以降でサポートされています。

    スクリプトの実行
    が開始された とき 。 また、
    Connect コマンド と Disconnect
    コマンド によって更新され ます。
    _MACHINE = <サーバー名> HeartCore Roboが接続されているデスクトップサーバーのマシン名。
    接続がない場合、変数は空です。
    _PORT = < ポート番号 > デスクトップサーバーのポート番号。 接続されたデスクトップが

    ローカルディスプレイに 直接接続されたドライバなどの)TCP / IP接続を使用 しない 場合 、変数は空です。
    _PROTOCOL = <プロトコル名>
    現在のデスクトップ接続プロトコルの名前(コード)(大文字は
    「RFB」、「ADB」、「JAVA」など)。
    _URL = <desktop_url>
    プロトコル、マシン(ホスト)名、オプションで
    ポート番号 を含むデスクトップURL 。
    _DESKTOP_WIDTH = <width_in_pixels> 現在接続されているリモートデスクトップの幅(ピクセル単位)。
    _DESKTOP_HEIGHT = <width_in_pixels> 現在接続されているリモートデスクトップの高さ(ピクセル単位)。
    _DISPLAY_COUNT = <number_of_displays>
    接続によって管理されるディスプレイ(画面)の数。
    4.3.1 以降でサポートされてい ます。 今回のリリースでは、マルチディスプレイ対応の接続は
    ローカルデスクトップ のみ です。 他のすべての接続では、カウントは1(1)と表示されます。
    _DISPLAY_X_ <n> = <number_in_pixels>
    _DISPLAY_Y_ <n> = <number_in_pixels>
    _DISPLAY_W_ <n> = <number_in_pixels>
    _DISPLAY_H_ <n> = <number_in_pixels>
    n番目のディスプレイの座標(x、y、幅、高さ)。 ナンバリングは1から始まり
    、ローカルOSに従います。 複数のディスプレイをサポートしていない接続では
    、X座標とY座標はゼロに設定され、幅と高さは
    デスクトップ 座標に設定され ます。 4.3.1以降でサポートされています。

    接続または
    切断 時の RFB(VNC)クライアント
    _DISPLAY = <サーバー名>:[<ディスプレイ番号>]
    Unix / Linuxシステム でディスプレイリダイレクト に 役立つ変数を表示し ます。 これは "server:port"形式です。
    たとえば、 "mymachine:2"は
    ポート5902でVNCサーバーを実行している 「mymachine」と呼ばれるマシンを定義 します.VNC
    接続がない場合、変数は空です。
    指定された条件を満たす
    更新イベント が発生する

    Waitforコマンドが実行されます。
    _X = <number_in_pixels>
    条件を満たす最後の更新イベントの「x」座標。
    _Y = <number_in_pixels> 条件を満たす最後の更新イベントの「y」座標。
    _W = <number_in_pixels> 条件を満たす最後の更新イベントの「幅」座標。
    _H = <number_in_pixels> 条件を満たす最後の更新イベントの「高さ」座標。

    毎回実行 後にWaitforコマンド
    _TIMEOUT = <true | false> timeoutが定義され、到達すると、Waitforコマンドは
    この変数を 'true'に設定し、そうでなければ 'false'に設定します。
    レポート

    生成さ れるたびにレポートコマンド
    _REPORT_FILE = <ファイル> レポートファイル(絶対パス)(例: '/root/report.html')。
    _REPORT_FILENAME = <ファイル名> レポートファイル名(例: 'report.html')。
    _REPORT_FILE_RELATIVE = <ファイル> レポート(出力)ディレクトリ(たとえば、
    'MyTestScript.tpr.2a12fd2 / report.xml' )に対して相対的にファイルパスを報告します 。 4.1.3以降でサポートされています。
    ComparetoScreenshotWaifor matchクリック アンドドラッグ など、画面

    の コンポーネントまたはテキストの 検索 を 実行するコマンド



    _COMPARETO_TEMPLATE = <ファイル>
    最後の画像比較に使用される画像ファイル(絶対パス)。
    _COMPARETO_RESULT = <number>
    比較結果のパーセンテージ。 これは常に0〜100の数値
    です。画像がどのくらい一致したかを示します。
    _COMPARETO_PASS_RATE = <number>
    最後の画像コンパイルに使用された合格率パーセンテージ。 それは
    、常に0〜100の数値。
    _COMPARETO_TIME_IN_MS = <ミリ秒>
    イメージ比較で費やされた時間(ミリ秒)。
    テンプレートの リストがある場合 、その値は実行されたすべての
    比較の 要約時間を表し ます。
    _COMPARETO_TEMPLATE_INDEX = <number>
    pass
    結果 を生成したテンプレートリスト内のテンプレートのインデックス 。 インデックスはゼロから始まります。
    _COMPARETO_TEMPLATE_WIDTH = <number>
    _COMPARETO_TEMPLATE_HEIGHT = <number>
    一致するテンプレート画像の寸法。 v4.4以降、変数には
    、比較が失敗したときに使用された最後のテンプレートイメージが格納されます。
    _COMPARETO_SOURCE_X = <数値>
    _COMPARETO_SOURCE_Y = <number>
    最後に比較されたテンプレートのソース座標。 これらの変数
    は、バージョン2.2以降で作成されたテンプレートに対してのみ設定されます。
    詳細については、 画像メタデータの 章を参照してください。
    _COMPARETO_CLICK_X = <number>
    _COMPARETO_CLICK_Y = <number>
    最後に比較されたテンプレート画像のクリック点。 座標は、デフォルト
    では、「検索」画像
    比較アルゴリズムまたはカスタム相対 位置を介して配置されたコンポーネントの中心を指す 。
    詳細については、 画像メタデータの 章を参照してください。
    _COMPARETO_CLICK_X_ <n> = <number>
    _COMPARETO_CLICK_Y_ <n> = <number>
    <n>番目のマッチの最後に比較されたテンプレート画像のクリック点。
    座標は、デフォルトでは
    、「検索」画像比較アルゴリズムを介して 配置さ れ たコンポーネントの中心、 または
    テンプレート画像が作成されたときにクリックポイントによって定義された カスタム相対 位置を指します。
    詳細については、 画像メタデータの 章を参照してください。
    _COMPARETO_DISPLAY_NO = <display_number>
    _COMPARETO_DISPLAY_NO _ <n> = <display_number>


    最上位またはn番目の一致があったディスプレイの番号。
    ナンバリングは1から始まり、ローカルOSに従います。 4.3.1以降でサポートされています。
    今回のリリースでは、マルチディスプレイ対応の接続は ローカル
    デスクトップ
    のみ です。 他の接続はすべて常に1(1)と表示されます。
    ユーザー(カスタマイズ可能)
    _COMPARETO_SORT_MODE = <number>

    ディレクトリから読み込まれたテンプレートイメージに適用されるソートモード。
    詳細については、 画像コレクションの 章を参照してください。
    _DESKTOP_SIZE = w:<幅>; h:<高さ>
    iOSミラー接続を介してミラー化されたiOS画面のターゲットサイズ。
    この変数を設定するVarコマンドが実行されるたびに、
    ミラー化された画面の サイズが変更
    され、特定の画面サイズに対して作成された テンプレート画像の画像比較が 正しく機能するようになります。 詳細については 、
    iOS Mirror 接続ドキュメントを お読み ください。
    「検索」比較 方法が使用されて いる 場合のComparetoコマンド、
    スクリーンショット
    比較、
    Waifor match 」コール


    _SEARCH_MATCH_COUNT = <number>
    イメージ検索で 見つかった一致の数 。 常に
    ゼロ以上 の整数 です。
    _SEARCH_X = <number> 最初の一致の「x」座標。 テンプレート画像が
    見つからなかった 場合、 値は-1です。
    _SEARCH_Y = <number> 最初のマッチの 'y'座標。 テンプレート画像が
    見つからなかった 場合、 値は-1です。
    _SEARCH_X_ <n> = <number>
    _SEARCH_Y_ <n> = <number>
    n番目の一致の 'x'と 'y'座標。ここで、nは
    1と_SEARCH_MATCH_COUNTの値の間です。
    "オブジェクト"比較 方法が使用されて いる ときのComparetoコマンド、
    スクリーンショット
    比較、および
    ' Waifor match '呼び出し

    _OBJECT_COUNT = <数値> 「オブジェクト」 画像比較方法を 介して配置されたオブジェクトの数 。
    _OBJECT _X_ <n> = <number>
    _OBJECT _Y_ <n> = <number>
    _OBJECT _W_ <n> = <number>
    _OBJECT _H_ <n> = <number>
    'x'と 'y'の座標、n番目のオブジェクトの幅と高さ(
    nは1〜_OBJECT_COUNTの間)。
    Execの 後のコマンド
    実行ごと
    _EXEC_OUTPUT = <テキスト>
    実行されたコマンドの標準出力、つまり
    コンソールに 出力されるメッセージ 。
    _EXEC_ERROR = <テキスト> 実行されたコマンドのエラー出力、つまりエラーメッセージ
    がコンソールに 出力 され ます 。
    _EXEC_COMMAND = <コマンド> 最後に実行されたOSコマンド、つまりExec引数。
    _EXEC_VALUE = <数値>
    実行されたOSコマンドの整数終了コード。
    ComparetoScreenshotWaiforの一致/不一致クリック アンドドラッグ
    などの 画像比較コマンド

    _LAST_CMP_COMMAND = <コマンド>
    最後に実行されたイメージ比較コマンドのテキスト。 v4.4.2以降でサポートされています。

    変数ブラウザ ウィンドウを 使用 して、現在の実行リポジトリに存在する変数のリストを表示する ことができ ます。

    構文
    var <var_name_1>=<value_1> [<var_name_2> = <value_2> ... <var_name_N> = <value_N>]
    *赤色は必須パラメータを示します

    オプション
    var_name

    - 変数の名前。 名前は大文字と小文字が区別され、スペースは使用しないでください。

    value

    - 変数値。 値にスペースが含まれている場合は、二重引用符で囲む必要があります(例:「これはスペースを含むテキストです)。 変数の値に二重引用符を含める必要がある場合は、 "This is a double quote \" "のように先行するバックスラッシュを置きます。二重引用符の後ろにバックスラッシュを含める必要がある場合は、 '、例えば "これはバックスラッシュの後に二重引用符を付けたものです - \\" "

    戻り値
    Varのコマンドは、常に0(ゼロ)を返します。

    使用例
    Var PATH=/tmp  path=/tmp  DESCRIPTION="Path to change to"  EMPTY=

    - 4つの変数PATH、path、説明、およびEMPTYを指定の値で作成します。

    Compareto "search.png" method="search"

    for (i=1; {i}<{_SEARCH_MATCH_COUNT}+1; i={i}+1) {
      # Nested variables compose the variable names of a suffix and an index
      Mouse click to=x:{_SEARCH_X_{i}},y:{_SEARCH_Y_{i}}
    }

    - ネストされた変数参照の例は、テンプレート画像search.pngによって表されるアイコンをリモートデスクトップイメージから検索し、すべてをクリックします。

    3.2.15 Varf


    説明
    次へ | 前へ | トップ^
    Varf - 新しい行、タブ、または特殊なUnicode文字を挿入できる Javaエスケープシーケンス が 値に含まれる可能性がある1つ以上の変数を定義し ます。 v3.5.1以降でサポートされています。

    構文
    varf <var_name_1> = <value_1> [<var_name_2> = <value_2> ... <var_name_N> = <value_N>]
    *赤色は必須パラメータを示します

    オプション
    var_name

    - 変数の名前。 名前は大文字と小文字が区別され、スペースは使用できません。

    value

    - 変数値。 値にスペースが含まれている場合は、二重引用符で囲む必要があります(例:「これはスペースを含むテキストです)。 エスケープシーケンスは次のように変換されます:

        \b     / *  \u0008 :バックスペースBS * /
        \t     / *  \u0009 :水平タブHT * /
        \n     / *  \u000a :ラインフィードLF * /
        \f     / *  \u000c :フォームフィードFF * /
        \r     / *  \u000d :キャリッジリターンCR * /
        \"     / *  \u0022 :二重引用符 "* /
        \'     / *  \u0027 :一重引用符 '* /
        \\               / *  \u005c :バックスラッシュ\ * /
        \uNNNN will be converted to the appropriate Unicode character as long as NNNN is a valid Unicode character hexadecimal value
      

    戻り値
    Varfコマンドは常に0(ゼロ)を返します。

    使用例

    Varf MULTILINE="Line #1\nLine #2"

    - MULTILINE変数に2行のテキストを挿入します( '\ n'シーケンスは新しい行に変換されます)。

    Varf MULTILINE="Line #1\u000aLine #2"

    - 改行文字がエスケープされたUnicode(新しい行はASCII 10、0x0a)で指定されている上記の例と同じです。


    3.2.16 Wait


    説明
    次へ | 前へ |次へ トップ^
    Wait - 指定された時間待機します。 このコマンドを使用して、指定した期間スクリプトの実行を一時停止します。

    書式
    wait <time>
    *赤色は必須パラメータを示します

    オプション
    time

    - 次のコマンドに進む前に待機する時間。 ゼロより大きい数値でなければなりません。 デフォルトでミリ秒として解釈されます。 時間形式の指定については、 時間値の構文 を参照ください 。

    戻り値
    コマンドは常に0(ゼロ)を返します。

    使用例
    Wait 30000
    Wait 30s
    Wait 0.5m

    - 3つのコマンドはすべて同等で、次のコマンドに進む前にスクリプトを30秒待機させます(30,000ミリ秒、0.5分)。

    3.2.17 Waitfor


    説明
    次へ | 前へ | トップ^
    Waitfor - スクリプトの実行を一時停止し、RFBイベントまたはリモートデスクトップイメージの状態を待ちます。 現在サポートされているイベントは、 画面更新 ベル (デスクトップでASCII文字0x07の印刷によるビープ音を鳴らす)、 リモートシステムにコピーされたテキストの配信 (デスクトップサーバーのクリップボードの変更)、 OCR結果や画像などの一致/不一致 (肯定的または否定的な画像比較結果)です。

    特定のイベントのサポートは、プロトコル機能の対象となります。 HeartCore Roboにはオープンで柔軟なアーキテクチャが採用されており、リモートデスクトップテクノロジによって一般的に提供される機能のサブセットのみでクライアントを接続できます。 Waitforイベントが選択されたデスクトッププロトコルでサポートされていない場合、スクリプトはエラーを報告します。 次の表に、サポートされている2つのプロトコルの機能を示します。

    Waitforイベント
    RFBクライアント("rfb") 静的イメージ( "file")
    "update"(画面更新)
    はい
    はい (イメージファイルの変更の検出による)
    "bell"(ビープ音)
    はい
    いいえ
    "clipboard"(クリップボードの変更)
    はい vncconfig または autocutsel ユーティリティを
    サーバー上での実行が必要な場合があります。 詳しくは リリースノートを参照ください。)
    いいえ
    "match"(ポジティブ画像比較結果)
    はい
    はい
    "mismatch"(ネガ画像比較結果) はい
    はい

    すべてのWaitforコマンドは、次の変数に値を設定します。
    変数名 説明
    _TIMEOUT = <true|false> timeoutが定義され、到達するとWaitforコマンドは
    この変数を 'true'に設定し、そうでなければ 'false'に設定します。

    Waitfor update コマンドは、追加の変数を設定します。

    変数名 説明
    _X=<X座標>
    _Y=<Y座標>
    _W
    =<幅>
    _H=<幅>
    条件を満たす 最後の更新 イベント のX、Y座標と幅と高さ。
    これらの変数は Waitfor更新の ためだけに利用されます。

    Waiforの match および mismatch コマンドは Comparetoコマンド との 結果の互換性を維持し、 さらに2つの変数グループを設定します。
    1. CompareToコマンドで指定されたすべての_COMPARETO接頭辞付き変数、
    2. 選択された 画像比較方法 によって設定された変数 。
    Waitforクリップボードには _SERVER_CLIPBOARD_CONTENT 変数が記述されていますが、Waitforコマンドでは作成されず、コマンドとは独立してコアフレームワークによって設定されています。

    書式

    Waitfor <event_id> [<event specific options>] [timeout=<time>][ontimeout = <command>] [onpass=<command>] [count=<number>] [wait=<time>]
    *赤色は必須パラメータを示します

    event_id

    -サポートされているイベントIDは、'bell' 、 と 'update' 'match' 'mismatch' 'clipboard' です。

    一般的なオプション

    timeout=<time>

    - タイムアウトの最大待機時間を指定する。 値は、ミリ秒数または有効な 時間値 のいずれかでなければなりません 。

    ontimeout=<command>

    - タイムアウトに達したときに実行されるコマンド。 1つのコマンドでなければなりません。 実行するコマンドのシーケンスを定義する必要がある場合は、プロシージャを使用します。

    onpass=<command>

    - 条件が満たされたとき(期待されるイベントが受信されたとき、またはイメージ比較が期待される結果を返さないとき)に実行されるコマンド。 それは単一のコマンドでなければなりません。 一連のコマンドを呼び出すには、プロシージャーまたは後続の if / else構造 を使用して、コマンドの終了コードをテストします。

    count= <number>

    - イベントを待機する回数。 デフォルト値は1です。このパラメーターは、イメージ比較イベント(Waitfor match / mismatch)では無視されます。

    wait=<time>

    - Waitfor条件が満たされた後に待機する時間。 次のコマンドが " Wait <time_in_ms> ' だった場合と同じ効果があります 。 このパラメーターは、 timeout パラメーターで 定義されたタイムアウトに 達した場合は無視されます。 値は、ミリ秒数または有効な 時間値 のいずれかでなければなりません 。 デフォルト値は0です(待ちません)。 スクリプトは_WAITFOR_WAIT変数に所望の遅延を設定するなどして、デフォルト値を設定することができます
    例:"Var _WAITFOR_WAIT=1s"


    Waitfor bell [< common options >]

    特定のオプション - bell

    なし。


    Waitfor update
    [area=[x:<x>][,y:<y>][,w:<width>][,h:<height>]] [extent=<number>[%]] [cumulative=<false|true>]  [<common option >]

    特定のオプション - update

    area=[x:<x>][,y:<y>][,w:<width>][,h:<height>]

    - 更新のための画面領域。 このパラメータは update イベントに のみ適用され、 カスタム領域を定義して更新を監視することができます。 エリア座標は ' x:<x>,y:<y>,w:<width>,h:<height> 'の 形式を持ち 、各座標はピクセル(例: ' x:225 ')またはパーセンテージ(たとえば ' x:23%' ) で指定できます 。 x、y、幅または高さのいずれかが省略された場合、Robotは全画面値を使用して欠落しているパラメータ、つまり ' x:0, y:0, w:<screen_width>, h:<screen_height> ' を決定します。 ステータスバーの Update Coordinates 機能 を使用して、更新エリアを定義することもできます 。

    extent= <number> [%]

    - スクリーン更新の範囲(有効範囲)。 このパラメータは、 updateイベントにのみ適用され 、画面更新の大きさを定義します。 値は更新されたピクセル数(例: ' extent=400 ')またはパーセンテージ(たとえば ' extent=22% ')のいずれかです。 カスタムエリアが area パラメータで 定義されている 場合、パーセンテージ/ピクセル値がこのエリアに対して計算されます。

    cumulative=<false|true>

    - 累積的な更新をオン/オフに切り替えます。 デスクトップサーバーが徐々に画面を更新し、大きな画像の断片を多く送信する場合は、この機能をオンにすると、HeartCore Robo Desktopは 定義された領域に入るすべての部分的な更新をsumarizeします。 デフォルト値はfalseです。

    Windows VNCサーバーは一連の小さな更新で画面を更新することが知られているので、モードをtrueに設定することをお勧めします。


    Waitfor match|mismatch
    [template=<image_collection>] [passrate=<pass_rate>%] [interval=<comparison_interval>] [method=<comparison_method>] [methodparams=<custom_params>] [cmparea=[x:<x>][,y:<y>][,w:<width>][,h:<height>]] [<common options>] [<method_specific_params >]
    *イメージコレクションは、選択したイメージ比較アルゴリズムで必要な場合のみ必須ですパラメータ "方法")。 詳細については、 Comparetoコマンドの仕様を参照してください。

    特定のオプション - matchとmismatch

    template=<image_collection>

    - image collection -セミコロンで区切られた画像を1つまたは複数の画像ファイル名やフォルダ(「;」)リモートデスクトップの画像と比較します。 Linux / Unixでは、リストが誤って解析されるため、ファイル名にセミコロンが含まれていないことを確認してください。 ファイル名は、相対(例えば img.png )か絶対(例えば /root/report/img.png )の どちらか です。 相対パスを使用すると、イメージは _TEMPLATE_DIR変数 で定義されたディレクトリで検索されます。 サポートされるイメージ形式は、Javaバージョンおよびインストールされた拡張機能(Java Advanced Imagingライブラリ、JAIなど)の対象です。 Java 1.6以降でPNG、JPG、GIF、およびBMPをサポートします。

    テンプレートイメージは、指定されたリストの順序でリモートデスクトップイメージと比較されます。 テンプレートの比較で肯定的な結果(指定されたイベントに応じて一致または不一致のいずれか)が発生した場合、条件は満たされたとみなされ、終了コード0でコマンドが終了します。 ( _COMPARETO_TEMPLATE_INDEX 変数に格納) あらかじめ 定義された変数 を使用して、リスト内(詳細は、 画像比較固有の変数 ) を 参照してください 。

    画像の比較は、JPEGなどの非可逆圧縮の画像に対しては実行しないでください。 代わりにPNGまたはBMPを使用してください。 それらであれば画像情報の100%を保存してあるため、信頼性の高い安定した比較結果が保証されます。 イメージ比較については Comparetoコマンドの仕様 で説明します。

    interval=<time>

    - このパラメータは、画像比較の時間間隔を定義します。 デフォルト値は3秒です。これは、デスクトップイメージが3秒ごとに指定されたテンプレートイメージと比較されることを意味します。 プレーン番号は、デフォルトではミリ秒として解析されます。 時間形式の 詳細については 、時間値の構文を参照ください。 デフォルト値は、 Preferencesウィンドウの Waitfor preferencesパネルで設定できます。

    passrate=<pass_rate>%

    - 画像比較の合格率。 0から100までの数字でなければならず、任意にパーセント記号(たとえば、 "passrate=95" または "passrate=95%" )を 続けてもかまいません 。 このパラメータを省略すると、メソッドまたはHeartCore Robo環境設定で定義されたデフォルトの合格率が使用されます (デフォルト値は 「デフォルト」では 95% 、 "search" および "search2"の方法 では100%です )。

    method=<comparison_method>

    - 画像比較に使用する方法(アルゴリズム)。 これは、「 画像比較機能 」 の章で 説明されているサポートされているメソッド名(コード) またはプラグインインタフェースで有効になっているサードパーティメソッドの名前でなければなりません。 省略された場合は、デフォルトのコマンドが使用されます。

    methodparams=<custom_params>

    - 画像比較アルゴリズムに渡すカスタムパラメータ。 Robot2.0のデフォルト画像コンパイルアルゴリズムはカスタムパラメータをサポートしていないので、独自のアルゴリズムを記述しない限り、このパラメータを指定する必要はありません。

    cmparea=[x:<x>][,y:<y>][,w:<width>][,h:<height>]

    - デスクトップの長方形の領域を選択比較します。 このパラメータを省略すると、リモートデスクトップ実行画面全体が使用されます。 エリア座標は ' x:<x>,y:<y>,w:<width>,h:<height> ' の形式を持ち、 各座標はピクセル単位(たとえば。 "x:225" )またはパーセント 単位("x:23%")で指定できます。 x、y、幅または高さのいずれかが省略された場合、Robotはフルスクリーン値を使用して不足しているパラメータ( x:0, y:0,w:<screen_width>, h:<screen_height> ) を決定します 。


    Waitfor clipboard [<common options >]

    特定のオプション - clipboard

    なし。


    戻り値
    条件(イベント)が満たされた場合、コマンドは、一般的に0(ゼロ)を返します。 タイムアウトに達すると、ゼロ以外の値(通常は1)が返されます。 ' Waitfor match 'と ' Waitfor mismatch 'は Compareto コマンドの 動作を模倣 し、比較が成功する と0(ゼロ)を返し、失敗した場合は1を返し、テンプレート画像が見つからないか読み取れない場合は2を返します。

    使用例
    Typeline "export MYDOC=`find / -name mydoc.txt`; sleep 1; echo -e '\007\007'"
    Waitfor bell count=2
    Typeline "gnome-text-editor $MYDOC"

    - これは Unix / Linuxシステムでbellイベント を使用する典型的な例 です。 あなたのハードドライブ上のファイルを見つけてそれを編集する必要があるとしましょう。 最初のコマンドは、ターミナルウィンドウで検索を実行し、Waitforコマンドに進みます。 検索が終了すると、 echo OSコマンド を使用して2つのベル文字が印刷され 、マシンのビープ音が2回鳴ります。 これにより、Waitforコマンドが実行され、3番目のコマンドが実行され、Gnomeテキストエディタでドキュメントが開きます。

    ' sleep 1 'コマンドを使用します。 デスクトップサーバーが非常に高速で、HeartCore Robo Desktopを実行しているマシンが多少遅い場合、Waitforコマンドに進む前にドキュメントの検索が完了することがあります。 ' sleep 1 'は、サーバーが2つのベル文字を印刷する前に1秒間待機するため、この問題を防ぎます。

    procedure terminate {
        Screenshot error.jpg
        Report report.html
        Exit {1}
    }
    Typeline myapplication
    Waitfor update extent=40% timeout=20s ontimeout="terminate 2"

    これは Waitfor update コマンドの 典型的な使い方です 。 これは、 myapplication ターミナルウィンドウから 呼び出さ れた GUIアプリケーションを起動している状況を示してい ます。 アプリケーションウィンドウが画面サイズの少なくとも40%に等しい固定サイズを持っているとしましょう。 GUIが正常に起動すると、スクリプトは続行されます。 Waitforコマンドは、さもなければ20秒待ってから、与えられた終了コードで終了プロシージャを実行します。

    Waitfor match template=application.png;application2.png passrate=95% interval=5s timeout=5m ontimeout="exit 1"

    - リモートデスクトップイメージをイメージ application.png と 比較し、 application2.png 95%以上が一致するまで5秒ごとに 比較し ます。 この条件が5分以内に満たされない場合は、 Exit コマンドを 使用してスクリプトの実行を終了し、終了 コード1を返します。


    Press Ctrl+C
    Waitfor clipboard timeout=5s
    if ({_EXIT_CODE} == 0) {
      Screenshot copied_text.jpg desc="Received text copied on the remote desktop: {_SERVER_CLIPBOARD_CONTENT}"
    }

    - リモートデスクトップでCtrl + Cを押すと、通常、選択したテキストがリモートシステムのクリップボードにコピーされます。 一部のデスクトップサーバーは、このテキストをクライアントに送信することができます。 HeartCore Robo Desktopはそのようなメッセージをデコードし、_ SERVER_CLIPBOARD_CONTENT 変数の 形でテキストをスクリプトに提供することができます。 上記の例では、コピーしたテキストの受信 Waitfor clipboard と、スクリーンショットの説明などの使用を確認する方法を示しています 。



    3.3レポートコマンド


    3.3.1 Log


    説明
    次へ | 前へ | トップ^
    Log - スクリプト実行ログファイルにメッセージを記録します。 詳細については、 実行ログ のヘルプトピックを 参照してください 。

    書式
    Log "<text>" [level=<logLebel>] [terminal=<true|false>]
    *赤色は必須パラメータを示します  

    オプション
    text

    - ログテキスト。 実行ログファイルはHTML形式で生成されるため、HTMLマークアップを含むことがあります。

    level=<logLevel>

    - 「SEVERE」、「WARNING」、「INFO」、「CONFIG」、「FINE」、「FINER」、および「FINEST」のいずれかのオプションのログレベルがあります。 デフォルト値は "INFO"またはログコマンドの設定で指定されたカスタム値です。

    lebelでは、メッセージの優先度別にログファイルをフィルタリングできます。 デフォルトのフィルタレベル(「最小レベル」とも呼ばれます)は「INFO」です。つまり、ログにはそれ以上のレベルのメッセージのみが記録されます。 これにより、後でログの一部を設定するオプションを使用して、詳細なロギングを使用してスクリプトを構築することができます。

    terminal=<true|false>

    - 値trueを指定すると、コマンドは端末にメッセージをコピーします(コマンドプロンプト)。 デフォルト値は 'false'です。 v4.1.3以降でサポートされています。 

    history=<true|false>

    - trueを指定すると、コマンドは最新のスクリプト履歴をログファイルに記録します。 これには、最新の詳細ログとデバッグ画面が含まれます。 スクリプトでエラーが発生する前に何が起こったのかを追跡するために使用します。 ログ履歴の設定でスクリプト履歴記録機能が無効になっている場合は、スキップされます。 デフォルト値は 'false'です。 v4.4.2以降でサポートされています。 

    戻り値
    コマンドは常に0(ゼロ)を返します。

    使用例
    Log "Suspicious image search coordinates: _SEARCH_X={_SEARCH_X}, _SEARCH_Y={_SEARCH_Y}" level="WARNING"

    - 警告ログを作成します。



    3.3.2 Report


    説明
    次へ | 前へ | トップ^
    Report - 実行されたスクリプトのレポートプロバイダを作成して開始します。 結果、スクリーンショット、警告などのスクリプト実行データからレポートを作成するオブジェクトです。 レポートプロバイダはカスタマイズ可能なプラグインであり、その機能、ライフサイクルおよび出力形式は実装固有のものです。 レポートをカスタマイズする方法の詳細については、Plugin APIを参照してください。 このコマンドで開始されるデフォルトのプロバイダは、 Report 環境設定で構成可能であり 、デフォルトは 'enterprise'

    コマンドの入力は _REPORT_DIR 変数設定に 依存して 、レポートファイルを格納するターゲットフォルダを定義します。 次の変数を作成して設定します。

    変数名 説明
    _REPORT_FILE = <file> 最初に指定されたレポートファイルへの絶対パス(スクリプトによってレポートが作成されている場合)。 v4.0以降でサポートされています。
    _REPORT_FILE_ <n> = <file> N番目のレポートファイルへの絶対パス。 番号は1から始まります。v4.1.3以降でサポートされています。
    _ REPORT_FILE_ <extension(拡張子)> = <file> 指定された拡張子を持つレポートファイルへの絶対パス(大文字)。 たとえば 、_REPORT_FILE_XMLおよび_REPORT_FILE_HTMLという変数があるため 、レポートファイルが指定さ
    れて "results.xml;results.html" いるとします。
    _REPORT_FILE_RELATIVE = <file> プロジェクトレポートフォルダに対する相対的な最初のレポートファイルのパス。 レポートはデフォルトで
    プロジェクトレポートディレクトリ( _REPORT_DIR を参照 )の 一意のフォルダに保存されるため、 この変数を使用して動的に作成されたフォルダの名前を取得できます。
    たとえば MyTestScript.tpr 、のコマンドを含む と呼ばれるテストスクリプトは 、変数を次のようなパスに "Report report.xml" 設定
    します "MyTestScript.tpr.2a12fd2/report.xml"

    相対的なプロジェクトパスは、Web上に公開されているレポートへのリンクを簡単にするためのものです。 あなたがプロジェクトを置くとき
    レポートフォルダをWebサーバのドキュメントルートに追加すると、この変数を利用してレポートURLを構築できます。 ユースケース について
    は、 Sendmail コマンドの例を 参照してください 。 v4.1.3以降でサポートされています。
    _REPORT_FILE_RELATIVE_ <n> = <file> N番目のレポートファイルの相対パス。 上記の説明を参照してください。 v4.1.3以降でサポートされています。
    _REPORT_FILE_RELATIVE_ <extension(拡張子)> = <file> 指定された拡張子を持つレポートファイルの相対パス。 上記の説明を参照してください。 v4.1.3以降でサポートされています。
    _REPORT_FILENAME = <file> 最初に指定したレポートファイルの名前。
    _REPORT_FILENAME_ <n> = <file> N番目のレポートファイルの名前。 上記の説明を参照してください。 v4.1.3以降でサポートされています。
    _REPORT_FILENAME_ <extension(拡張子)> = <file> 指定された拡張子を持つレポートファイルの名前。 上記の説明を参照してください。 v4.1.3以降でサポートされています。


    エンタープライズレポートプロバイダ
    このプロバイダは、HTML、XMLおよびZIP形式の両方をサポートしています。 それは"enterprise"コードです 。 デフォルトのプロバイダ( scope パラメータ を除く)の動作を正確にコピーし、 すべての設定パラメータを再利用します。 しかし、違いは、テスト出力を処理して結果のレポートファイルを生成する方法です。 デフォルトのプロバイダとは異なり、この スクリプト script step timerの テスト結果を サポートして おり、スクリプト実行ログと緊密に統合されています。

    出力形式がXMLに設定されている場合( .xml ファイルがコマンド引数で指定されている場合)、プロバイダはすべてのテスト出力を含む単純なXMLファイルを生成します。 形式はプロバイダの Java API documentation で指定されています 。 XMLレポートはXMLスタイルシート(XSL)にリンクされているため、Webブラウザで表示され、デフォルトプロバイダが生成したHTMLファイルとまったく同じビューを提供します。 HTMLビューへのXMLデータの解釈はWebブラウザ側で行われるため、XML出力は高​​速かつ効率的です。 XMLファイルは、テスト結果を第三者のアプリケーションにエクスポートするために、さらに再利用することができます。

    このツールは、デフォルトのXSLファイルをカスタムのものに置き換えるためのメカニズムをユーザーの環境設定に提供します。 これにより、WebブラウザがXMLデータをどのように表示するかをカスタマイズすることができます。 プロバイダは主にパフォーマンスに影響を与える設定可能な追加オプションを提供し、レポート生成の頻度をカスタマイズすることができます。

    出力がHTMLに設定されている場合、プロバイダは実際にXML出力を最初に生成し、XSL変換を使用してHTMLファイルを生成します。 この操作は非効率的で、通常は非常に遅いです。 この場合、プロバイダーはデフォルトのHTMLコンテンツと同じHTMLコンテンツを作成するので、XSLファイルにカスタム変更が適用されていない限り、デフォルトのものを使用することをお勧めします。

    4.1.3以降、プロバイダは複数のレポートファイルを受け入れます(セミコロンで区切られています)。 これは、HTMLレポートとXMLレポートの両方を作成するために使用できます。 また、レポートフォルダの内容でZIPファイルを作成することもできます。

    サンプルのXMLレポートは、 http://www.t-plan.com/robot/docs/examples/report-enterprise/sample.xml からオンラインで入手できます。


    デフォルトのレポートプロバイダ
    デフォルトのプロバイダは、単純なHTMLレポートを作成するレガシーレポートジェネレータです。 以前のVNCRobot 1.xバージョンおよびRobot Version 2と互換性があります。そのプロバイダコードは " default" です。以下のライフサイクルを持ちます:
    サンプルレポートは http://www.t-plan.com/robot/docs/examples/report-simple/sample.html にあります。

    デフォルトのレポートプロバイダは、スクリプトの実行中に取られたすべてのイメージと警告を常に処理します。 つまり Report 、スクリプトの最後にコマンド を呼び出しても 、HTMLレポートには、 Report コマンドが実行される 前のすべてのスクリーンショットと警告が一覧表示 されます。 画像のリストは、画像の原点に応じて現在制限されている可能性があり scope ます(下 の パラメータを参照)。

    HTMLレポートには、実行された画像比較の結果の表も含まれます。 この機能は、HeartCore Robo Desktop設定で設定することができます。 Screenshot コマンドを使用して 実行されたすべての、または失敗した比較結果を表示します。 コマンド ComparetoWaitfor match/mismatch コマンドで 実行されるイメージの比較 は決してリストされないことに注意してください。 その根拠は、テーブルに機能的なリンクを提供するためには、とにかくスクリーンショットを作成しなければならないということです。 例については、上のリンクのサンプルレポートを参照してください。

    デフォルトのプロバイダは、HTMLレポートの最後に特定の値を挿入します。 HTMLコメントに埋め込まれており、ブラウザには表示されません。 それらは、レポートの状態、実行の長さ、失敗したイメージの比較などの情報を提供します。 これらの値は、レポートの状態と結果を解釈するためにサードパーティアプリケーションによって解析できます。 サンプル値を含む提供された変数のリストは次のとおりです。

     <! -  version = 1.3-20061210  - > 
    このレポートを生成するために使用されたHeartCore Robo Desktopバージョンとビルドを示します。
     <! -  running = false  - > 
    スクリプトの実行が実行中か、すでに終了しているかを示します。
     <! -  stopped = false  - > 
    'true'の値は、GUIモードのStopボタンまたはCLIのCtrl + Cを使用して、スクリプトの実行がユーザーによって手動で停止されたことを示します。
     <! - 一時停止= false  - > 
    'true'の値は、スクリプトの実行が手動またはプログラムで( Pause コマンド を介して )一時停止したことを示します。
     <! -  exitCode = 0  - > 
    終了コード。 ゼロは成功を示し、その他の正の数は失敗と解釈されます。 Exit コマンドを 参照してください 。
     <! -  imageCount = 3  - > 
    レポート内のイメージの数。
     <! -  failedComparisons = 0  - > 
    失敗したイメージ比較の数。
     <! -  warningCount = 0  - > 
    Warning コマンド によって追加された警告の数 。
     <! -  executionTimeInSec = 44  - > 
    秒単位のスクリプト実行時間。


    書式
    Report <file(s)> [provider= <provider_name>] [desk=<description>] [scope=<scope_id>] [onexit= <true|false>]
    *赤色は必須パラメータを示します

    オプション
    file(s)

    - レポートを保存するファイル名。 HeartCore Robo Desktopは、パスとファイルを作成できるかどうかをチェックし、そうでない場合はエラーを報告します。 ファイル拡張子は、プロバイダによって宣言されたサポートされている形式のリストに対して検証され、不一致で構文エラーが発生します。

    ファイル名は、相対(例えば report.xml )か絶対(例えば /root/report/report.xml )の どちらか です。 パスが存在しない場合、通常は作成されますが(デフォルトのプロバイダ)、この動作はプロバイダ固有のものである可能性があります。 相対パスを使用する場合、レポートファイルと関連するすべての出力は、 _REPORT_DIR 変数で 定義されたディレクトリに保存する必要があります。

    provider=<provider_name>

    - レポートプロバイダ名(オプション)。 「エンタープライズ」 (デフォルトでは積極的に開発され、選択されているもの)と 「デフォルト」の もの(レガシー/時代遅れ)の 2つのプロバイダがあり ます 。 最終的には、独自の名前で新しいプロバイダを作成し、プラグインフレームワークを通じてHeartCore Roboにプラグインすることができます。

    desc=<description>

    - レポートの説明。 レポートヘッダーに表示されます。 デフォルトのプロバイダを使用する場合、テキストには任意のHTMLタグを含めることができます。

    scope=<scope_id>

    - このscope パラメータは、スクリーンショットの作成者に基づいてレポートに含める イメージを定義する方法を提供します。 このパラメータは デフォルトレポートプロバイダ だけでサポート されており、Enterpriseでは無視されます。 許容できる値は2つあります。

    onexit=<true|false>

    - trueの値は、レポートを即座にリフレッシュするのではなく、メソッドが呼び出された後にスクリプトが完了した後に2回だけ作成されます。 このモードは、頻繁なレポートの更新がパフォーマンスの低下を招く可能性のある、複数のレポート対象オブジェクトを作成する大規模なスクリプトに推奨されます。 デフォルト値はfalseです。 v4.1.3からサポートされています..

    戻り値
    レポートコマンドが返すレポートプロバイダが開始され、最初の報告書を作成して保存成功している場合は0(ゼロ)。 エラーが発生した場合、つまりレポートファイルを作成できない場合、コマンドは1を返します。

    使用例
    Report 
    results.xml desc="This is my XML report."

    - レポートジェネレータを作成し、XMLレポートの生成を開始します。 相対ファイルが提供されると 、レポートは _REPORT_DIR 変数の 値で定義されたディレクトリに保存され ます。 提供された説明がレポートヘッダーに表示されます。


    Report results.xml;results.html;results.zip desc="This is my XML and HTML report together with a ZIP archive."

    - レポートジェネレータを作成し、XMLおよびHTMLレポートの生成を開始します。 一度終了したレポートフォルダのZIPファイルを作成します。


    Var _REPORT_DIR=/var/apache/htdocs/robot
    Report index.html scope=file
    Screenshot start_state.jpg desc="Initial state of the {_MACHINE} desktop. Starting execution of the {_FILE} script..."

    ...

    - これは、reportコマンドの使用方法に関する典型的な例です。 最初のコマンドは、実際にApacheのドキュメントルート内にあるレポートファイルとスクリーンショットの出力パスを定義します。 これは、ユーザーがウェブブラウザを通じてオンラインでレポートを見ることができるので非常に便利です。 レポートとスクリーンショットコマンドの両方で出力の相対パスが使用されるため、すべてが出力ディレクトリに保存されます。



    3.3.3スクリーンショット


    説明
    次へ | 前へ | トップ^
    Screenshot - 現在のリモートデスクトップのスクリーンショットを作成し、ファイルに保存します。
    Screenshotコマンドは Compareto コマンド と密接に統合されてい ます。 比較は、対応するテンプレートイメージがテンプレートディレクトリ( _TEMPLATE_DIR 変数を 参照 )に 見つかったときに実行され 、次の条件の少なくとも1つが満たされたときに実行されます。
    'template' パラメータを使用し てテンプレートイメージを明示的に指定しない限り 、テンプレートディレクトリで、名前と拡張子がPNG、GIF、BMP、およびJPG(この順番)に一致するテンプレートが検索されます。 スクリーンショットの設定と同じ名前のテンプレートを検索するには、スクリーンショットの設定でこの機能をオフにします。

    コマンドがイメージの比較を実行する場合、 イメージ比較の特定の変数に値が設定されます

    書式
    screenshot <file> [desc=<description>] [area=[x:<x>] [,y:<y>] [,w:<width>][h:<height>] [attach=<list_of_filesに>] [template=<image_collection >] [passrate=<pass_rate>%] [onpass=<command>] [onfail=<command>] [method=<comparison_method>] [methodparams=<custom_params>] [cmparea=[x:<x>][,y:<y>][,w:<width>][,h:<height>]] [drawresults=<true|false>]  [drawdiff=<true|false>] [<method_specific_params>]
    *赤色は必須パラメータを示します

    オプション
    file

    - イメージを保存するファイル名。 サポートされている拡張子(例えば、 "png"または "jpg")が必要です。 サポートされているイメージ形式はJavaバージョン依存します。 Java 1.6以降PNG、JPG、GIF、およびBMPをサポートします。 ファイル名は、相対(例えば img.jpg )か絶対(例えば /root/report/img.jpg )のどちらか です。 パスが存在しない場合は作成されます。 相対パスまたはファイル名だけを使用すると、イメージは _REPORT_DIR変数 で定義されたディレクトリに保存されます。

    desc=<description>

    - 画像の説明。 レポートに表示されます。

    area=[x:<x>][,y:<y>][,w:<width>][,h:<height>]

    - このパラメータは、リモートデスクトップのどの部分(サブイメージ)が保存されるかを指定するために使用できます。 このパラメータを省略すると、リモートデスクトップ全体が処理されます。 エリア座標は ' x:<x>,y:<y>,w:<width>,h:<height> 'の 形式を持ち 、各座標はピクセル(例: ' x:225 ')またはパーセンテージ(たとえば ' x:23%' ) で指定できます 。 x、y、幅または高さのいずれかが省略された場合、Robotは全画面値を使用して欠落しているパラメータ、つまり ' x:0,y:0, w:<screen_width>, h:<screen_height> ' を決定します 。 また、 Screenshot ウィンドウ を使用して比較領域を定義することもでき ます。

    attach=<list_of_files>

    - レポートに添付されるファイルまたはセミコロン( ';')で区切られたファイルのリスト。 レポートのスクリーンショットエントリにログファイルやドキュメントなどをリンクする方法を提供します。 レポート・ジェネレータは、 HTMLレポートのスクリーンショットのタイトルの添付ファイルを一覧表示し、各添付ファイルのハイパーリンクを作成します。 Robotは、添付ファイルをレポートディレクトリにコピーしたり、そこに存在するかどうかを検証したりすることなく、自分の目的の場所にファイルをコピーする必要があります。

    このパラメータは以前のバージョンとの互換性を維持するために廃止されました。 Java Test Script APIではサポートされていません。 

    template=<image_collection>

    - image_collection -セミコロンで区切られた画像を1つまたは複数の画像ファイル名やフォルダ(「;」)リモートデスクトップの画像と比較します。 Linux / Unixでは、リストが誤って解析されるため、ファイル名にセミコロンが含まれていないことを確認してください。 ファイル名は、相対(例えば img.png )か絶対(例えば /root/report/img.png )の どちらか です。 相対パスを使用すると、イメージは_TEMPLATE_DIR変数で定義されたディレクトリで検索され ます 。 サポートされるイメージ形式は、Javaバージョンおよびインストールされた拡張機能(Java Advanced Imagingライブラリ、JAIなど)の対象です。 Java 1.6以降でPNG、JPG、GIF、およびBMPをサポートします。

    テンプレートイメージは、指定されたリストの順序でリモートデスクトップイメージと比較されます。 テンプレートの比較で肯定的な結果(指定されたイベントに応じて一致または不一致のいずれか)が発生した場合、条件は満たされたとみなされ、終了コード0でコマンドが終了します。 あらかじめ 定義された変数 _COMPARETO_TEMPLATE_INDEXを使用ます。 詳細は、 画像比較固有の変数 を 参照ください 。

    画像の比較は、JPEGなどの非可逆圧縮の画像に対しては実行しないでください。 代わりにPNGまたはBMPを使用してください。 それらは画像情報の100%を保存し、信頼性の高い安定した比較結果を保証します。 イメージの比較については Comparetoコマンドの仕様 で説明します。


    passrate=<pass_rate> [%]
    - 画像比較の合格率。 0から100までの数字でなければならず、任意にパーセント記号(たとえば、 "passrate=95" または "passrate=95%" )を 続けてもかまいません 。 このパラメータを省略すると、メソッドまたはHeartCore Robo環境設定で定義されたデフォルトの合格率が使用されます(デフォルト値は "default"では 95% 、 "search" および "search2"方法 では100%です )。

    method=<comparison_method>

    - 画像比較に使用する方法(アルゴリズム)。 これは、「 画像比較機能 」の章で 説明されているサポートされているメソッド名(コード) またはプラグインインタフェースで有効になっているサードパーティメソッドの名前で なければなりません 。 省略された場合は、デフォルトのコマンドが使用されます。

    methodparams=<custom_params>

    - 画像比較アルゴリズムに渡すカスタムパラメータ。 Robot2.0のデフォルト画像コンパイルアルゴリズムはカスタムパラメータをサポートしていないので、独自のアルゴリズムを記述しない限り、このパラメータを指定する必要はありません。

    cmparea=[x:<x>][,y:<y>][,w:<width>][,h:<height>]

    - デスクトップの長方形の領域は、比較を制限します。 このパラメータを省略すると、リモートデスクトップ全体が使用されます。 エリア座標は ' x:<x>,y:<y>,w:<width>,h:<height> ' の形式を持ち、 各座標はピクセル単位(たとえば。 "x:225" )またはパーセント 単位("x:23%")で指定できます 。 x、y、幅または高さのいずれかが省略された場合、Robotはフルスクリーン値を使用して不足しているパラメータ( x:0, y:0, w:<screen_width>, h:<screen_height> ) を決定します 。

    onfail=<command>

    - イメージの比較が失敗したときに実行されるコマンド。 1つのコマンドでなければなりません。 実行するコマンドのシーケンスを定義する必要がある場合は、プロシージャを使用します。

    onpass=<command>

    - イメージの比較が成功したときに実行されるコマンド。 それは1つのコマンドでなければなりません。 一連のコマンドを呼び出すには、プロシージャーまたは後続の if / else構造 を使用して、コマンドの終了コードをテストします。

    drawresults=<true|false>

    - このフラグは、画像比較の結果をキャプチャされたスクリーンショットに描画するかどうかを制御します。 デフォルト値はfalseです(「結果をペイントしない」を意味します)。 コマンドがイメージ比較を使用しない場合、または指定された比較メソッドが結果ペインティングをサポートしない場合、パラメータは無視されます。

    デフォルトのHeartCore Robo Desktop構成では、"default"の画像比較方法は結果のペインティングをサポートしていません。 なぜなら、アルゴリズムの性質に関して意味をなさないからです。 "search"メソッドは結果ペインティングをサポートし、コマンド設定で指定された色でマッチ位置に対応する矩形を描画します。

    drawdiff=<true|false>

    - このフラグは、テンプレートイメージと異なるピクセルを構成済みの色(デフォルトでは緑色)でペイントする必要があるかどうかを制御します。 このパラメータは、レポートの画像差異追跡をサポートするためにv3.4で導入されました。 デフォルト値はfalseです(「違いを塗らない」ことを意味します)。 コマンドがイメージ比較を使用しないか、または指定された比較方法がピクセル差分トラッキングをサポートしていない場合、そのパラメーターは無視されます。 この機能は、"search"アルゴリズムと"search2"アルゴリズムでのみサポートされています。

    method_specific_params

    - サポートされている特定のパラメータの一覧については、 個々の 画像比較方法 のドキュメントを参照してください 。


    戻り値
    スクリーンショットが正常に保存され最終的な画像比較が成功した場合、コマンド戻り値は0(ゼロ)です。 イメージの比較が行われて失敗すると、値1が返されます。 スクリーンショットを保存できない場合(たとえば実行PCに十分な空きメモリがない場合)、コマンドは2を返します。

    使用例
    Screenshot image.jpg

    - 現在の リモートデスクトップの スクリーンショットを撮り image.jpg というファイル名で_REPORT_DIR変数の値で定義されたディレクトリ にあるファイルにJPEGイメージとして保存します。


    Screenshot /root/images/image2.png desc="This image shows what happened after I had clicked the Start button."

    - 現在の リモートデスクトップ のスクリーンショットを撮り image.png というファイル名で /root/images/ ディレクトリにPNGイメージとして保存します 。 実行されたスクリプトがレポートを生成すると、そこに提供された説明が表示されます。


    3.3.4 Script


    説明
    次へ | 前へ | トップ^
    Script - スクリプトの開始または終了を定義します(テストケース)。 コマンドは 旧バージョンと互換性保持の一環として導入されましたが、QA業界で一般的なテストスクリプト構造を定義する一般的な方法で使用できます。 スクリプトマッピングは エンタープライズレポートプロバイダ によって認識され、 出力XMLデータ(またはHTMLレポート)をQAドキュメント(テストケース仕様など)に マッピング するために使用できます。 スクリプトこの場合のHeartCore Desktopの用語ではテストケースと等しいです。 スクリプトは一般的にテストステップ

    テストケースをどのように実行するかを記述するセットアトミックテスト命令を表す。 HeartCore Robo Desktopスクリプトでは、[ Step] コマンド を使用してステップを指定できます 。

    このコマンドは、テストケースを実行するコードのブロックを定義するために[Script <id> start、Script <id> end]のペアで使用することを意図しています。 そのようなブロック内で生成された出力オブジェクト(スクリーンショットや警告など)は、スクリプト(テストケース)IDに関連付けられ、この関係がテスト結果データに反映されます。 スクリプトブロックの有効性は、ファイルの終了または別の「スクリプト開始」コマンドの宣言とともに自動的に終了するので、スクリプト終了の宣言は省略可能で省略することができます。


    書式
    Script <id> [start|end] [name=<displayable_name>]
    *赤色は必須パラメータを示します

    オプション
    id

    - 固有のスクリプトID。 それは数字かテキストかもしれません。 テスト結果を第三者テスト管理アプリケーションにエクスポートする場合、IDは理解可能な値でなければなりません。 HeartCore Robo Desktopデータベースにエクスポートするに は、HeartCore Robo Desktop 4.4 Integration Reference の Entity Mappingの 章に 記載されているように、IDを有効なスクリプトエンティティ番号にする必要があります 。

    start|end

    - スクリプトブロックが開始するか終了するかを示します。 また、 action=[start|end]と 指定することもできます パラメータを省略すると、コマンドはデフォルトで startになります。

    name

    - オプションでスクリプトの表示可能な名前。

    戻り値
    スクリプトコマンドは常に0(ゼロ)を返します。

    使用例
    Script 1 start name="Display https://www.heartcore.co.jp/"
    Press Windows+R wait=3s
    Typeline "https://www.heartcore.co.jp/"
    Waitfor match template="tplanlogo.png" method=search timeout=20s
    if ({_EXIT_CODE} == 0) {
      Step "Open https://www.heartcore.co.jp/ in web browser" pass
    } else {
      Step "Open https://www.heartcore.co.jp/ in web browser" fail
      Exit 1
    }
    Script 1 end

    - Windows上のデフォルトWebブラウザでhttps://www.heartcore.co.jp/ Webサイトを開くスクリプト番号1の例。 スクリプトはイメージ検索を使用して、ページが正常に表示されたことを確認します。 デスクトップ上でHeartCoreロゴが検出された場合、スクリプトはステップの結果を記録します。 それ以外の場合、失敗したステップが記録され、スクリプトはコード1で終了し、失敗を示します。



    3.3.5 Sendmail


    説明
    次へ | 前へ | トップ^
    Sendmail - 電子メールを送信します。 コマンドはSMTPクライアントとして機能し、最終的な添付ファイルを含む電子メールをSMTPサーバー経由で送信します。 サポートされている認証方式は、セキュリティ(パブリックメールサーバ)も、プレーンなユーザ/パスワード認証もありません。 通信は暗号化されていなくても、STARTTLS(4.1.3以降)で暗号化されていてもかまいません。 セキュリティタイプは自動的に選択され、コマンドで指定する必要はありません。 オプションの添付ファイルは、Base64エンコーディングで送信されます。fromtoserveruserpasswdの

    デフォルト値が sendmailの設定で提供されている場合、それらはコマンドで省略することができます。

    書式
    sendmail [from=<sender_address>] [to=<recipient_address>] [server=<server[:port]>] [subject=<subject>] [text=<mail_body>] [attach=<attachments>] [user=<userId>] [passwd=<password>] [delayed=<true|false>] [debug=<true|false>]

    有効なデフォルト値は、Sendmailのプリファレンスを介して提供されていない限り、*パラメータが義務付けされています 

    オプション
    from=<sender_address>

    - 送信者の電子メールアドレス。たとえば、john.doe@company.com。

    to=<recipient_address>

    - 受信者の電子メールアドレス。たとえば、jane.doe@company.com。

    server=<server[:port]>

    - メールメッセージを送信するSMTPサーバー。 ポート番号のないホスト名だけが使用されている場合、コマンドは標準SMTPポート25にサーバーを接続しようとします。

    subject=<subject>

    - メールの件名(タイトル)。

    text=<mail_body>

    - メール本体。 テキストが "<html>"で始まる場合、コンテンツタイプはHTMLに設定されます。 それ以外の場合、コンテンツはプレーンテキストとして送信されます。 改行を示すには '\ n'を使用します。 通常のテキストで '\ n'を使用する必要がある場合は、円記号( '\\ n')を二重にします。

    attach= <attach_file>

    - 添付ファイルのリスト、つまり電子メールに添付するファイル。 ファイル名はセミコロン( ';')で区切る必要があります。 Linux / Unixでは、リストが誤って解析されるため、ファイル名にセミコロンが含まれていないことを確認してください。 添付ファイルが見つからない場合、それは無視され、添付ファイルなしでメールが送信されます。 絶対パスでファイルを提供することをお勧めします。

    user=<user_name>

    - SMTPサーバーで認証するユーザーID。 このオプションは 、serverパラメータで指定されたSMTPサーバが平易なパスワード認証を必要とする場合 、 passwd パラメータ と一緒に使用する 必要があります。

    passwd=<password>

    - SMTPサーバーを認証するためのパスワード。 このオプションは 、serverパラメーターで指定されたSMTPサーバーが平易なパスワード認証を必要とする場合に 、 user パラメーター と一緒に使用する 必要があります。

    delayed=<true|false>

    - trueに設定すると、電子メールはスクリプトが終了するまで遅延されます(4.1.3以降でサポートされます)。 これは、スクリプトがテスト結果(レポート)を電子メールで送信する必要がある場合などに便利です。遅れなく実行すると、データに「実行中」のステータスが表示されます。 デフォルト値は false (即時送信)です。

    debug=<true|false>

    - デバッグフラグ。 debug = true を 使用 して、JavaMailデバッグコンソールの出力をオンにします。 これは、電子メール機能が機能しない理由を調べる必要がある場合に便利です。

    戻り値
    Eメールが送信した後、成功の場合は0(ゼロ)失敗の場合1のコマンドを返します。

    使用例
    Screenshot scr.png
    Sendmail to="tester@dummyserver.com" from="robot@dummyserver.com" server="mail.dummyserver.com" subject="Screenshot of the remote desktop" text="Please check the attached screenshot." attach="{_REPORT_DIR}/scr.png"

    - 現在のリモートデスクトップのスクリーンショットを撮って、Eメールでユーザーに送信します tester@dummyserver.com


    Sendmail subject="Hello" text="This is a multiline E-mail.\nSecond line.\nThird line."
    - 複数行の電子メールの例。 このコマンドは 、Sendmailのコマンド設定で 'from''to' および 'server' パラメータの 正しいデフォルト値を設定した場合にのみ機能します 。
    Sendmail subject="HTML Example" text="<html><body><h1>Hi there!</h1>How are you?</body></html>"
    - HTML電子メールの例 このコマンドは 、Sendmailのコマンド設定で 'from''to' および 'server' パラメータの 正しいデフォルト値を設定した場合にのみ機能します 。
    Sendmail delayed="true" subject="Script finished" text="<html><body>Script <i>{_FILENAME}</i> finished with the exit code of {_EXIT_CODE}. See the results <a href=\"http://myserver.mydomain.com/reports/{_REPORT_FILE_RELATIVE}\">here</a>.</body></html>"

    - テストスクリプトが完了したことを受信者に通知する電子メールの例。 'delayed' パラメータに設定され true たメールスクリプトが終了します後に送信されます。 レポートディレクトリは 、ホスト上のWebサーバのドキュメントルートの下 の reports / フォルダに リンクされているmyserver.mydomain.com. と想定しています。簡単にするため に、sendmailのコマンド設定で 'from''to''server' パラメータの 正しいデフォルト値を設定したものと仮定します 。


    3.3.6 Step


    説明
    次へ | 前へ | トップ^
    Step - テストステップの結果を定義します。 ステップは、テストケース(スクリプト)の1つのアトミック命令を表します。 stepは スクリプトブロック 内に配置する必要があります。

    書式
    Step <name> [pass|fail|nt|na] [instruct=<instructions>] [expected=<expected_result_desc>] [actual=<actual_result_desc>] [notes=<notes>] 
    *赤色は必須パラメータを示します

    オプション
    name

    - 表示可能なステップ名(例:「ログオン」、「ブラウザを開く」など)。一意である必要はありません。

    pass |fail|nt|na

    - ステップの結果。 合格 (passed、successful)、 失敗 (failed、unsuccessful)、 NT (not yet taste)または NA (not available)の いずれかでなければなりません 。

    instruct=<instructions>

    - 手順説明書(オプション)。 これは、通常、ステップを達成するために実行されたことの簡単な説明を表します。

    expected=<expected_result_desc>

    - 期待されるステップの結果の説明(オプション)。

    actual=<actual_result_desc>

    - 実際のステップ結果の説明(オプション)。 通常、失敗したステップで期待される結果との違いを示すために使用されます。

    notes=<notes>

    - 追加のステップ情報(オプション)。

    戻り値
    Stepコマンドは、常に0(ゼロ)を返します。

    使用例
    Compareto template= "application.png"
    if ({_EXIT_CODE} == 0) {
      Step "Start application" pass expected="The application GUI opens."
    } else {
      Step "Start application" fail expected="The application GUI opens." actual="The application failed to start."
      Exit 1
    }

    - Step使用の典型的な例。 スニペットは、イメージ比較を使用して、デスクトップがapplication.pngテンプレートと一致するかどうかをテストし、それに応じてステップの合格または失敗の結果を生成します。


    3.3.7 Timer


    説明
    次へ | 前へ | トップ^
    Timer - タイマーとタイマーグループを管理します。 タイマーは、通常、パフォーマンステストの目的で、コマンド、コマンドブロックまたはスクリプトによって経過した時間を測定することを可能にします。

    タイマーの典型的なタスクは、自動化されたタスクまたはスクリプトコードの所要時間を測定することです。 これには、タスクを開始する前にタイマーを作成して開始し、タスクの最後にタイマーを停止する必要があります。 タイマーは通常、 Reportコマンド と 一緒に使用され 、時間データを含むテスト結果をXMLファイルに格納します。

    Report perftesting.xml
    Timer t1 start desc="My task #1 duration"
    <task code>
    Timer t1 stop

    結果のXMLファイルをWebブラウザで表示すると、スクリプトタイマーの要約が単純な表形式で表示されます。 たとえば、上記のスクリプトは次のように作成します。

    タイマーのテーブル
    タイマー名 説明
    1。
    t1 My task#1のかかった時間 25.009秒(25009ms)

    XML結果ファイルは、参照データのソースとして再利用することもできます。 典型的なシナリオでは、上記のスクリプトを実行して、最適化されていないアプリケーションに対してベースタイマデータを記録したXMLを取得します。 後で自動実行でのパフォーマンスの向上を確認するには、スクリプトを次のように変更します。

    Report perftesting2.xml
    Timer load="perftesting.xml"

    Timer t1 start desc="My task #1 duration"
    <task code>
    Timer t1 stop

    "Timer load"コマンドは、入力XMLファイルを解析し、スクリプトによって定義されたタイマーの参照データを記録します(マッチングはタイマー名に基づいています)。 refvalue パラメータで 参照値を定義することも できます。 たとえば、MS Excelシート( Excel を参照 )またはプレーンテキストまたはCSVファイル(「 ファイル 」を参照)など から、参照データを別のソースから 読み込むことができます 。 参照データが定義されると、結果として得られるXMLは、以下のように参照値との比較を行って実際のタイマーを表示します。

    タイマーのテーブル
    タイマー名 説明 基準値 変化する
    1.
    t1 My task#1のかかった時間 24.984秒(24984ms) 25.009秒(25009ms)
    0.1%
      

    重要なタイマーとタイマーグループの機能:
    各タイマーは、ミリ秒単位で時間値をスクリプトに " _TIMER_<timerName> "変数 として公開し ます。 上の例では _TIMER_t1 変数があり、スクリプトは " " などの 変数呼び出し を通じて現在のタイマー値を取得します {_TIMER_t1} 。 呼び出された変数が予約済み接頭辞 " _TIMER_ " で始まって いて、その名前が既存のタイマー名に対応しない場合、その名前は-1を返します。 この値は、タイマーの存在をテストするために使用できます。

    タイマー変数は Var またはEvalで変更できますが、それらの値が内部データ構造体に格納されているため、タイマー自体には何の影響も与えません。 変数はむしろ単なる内部値の読み取り専用コピーです。 タイマーを特定の値に設定するには、 value パラメーターを 使用し ます。 実行中のタイマーの値を設定すると、実行中のタイマーの値が停止し、指定された値から再開するためには、コマンドには「開始」アクションが含まれていなければならないことに注意してください。

    たとえば、 t1 タイマーをゼロ使用からではなく1秒(1000ms)から開始 させるには、 次のようにします。

    Timer t1 start desc="My task duration" value="1000"

    もう1つの例は 、タイマーt1の値に 1秒を加え た新しいタイマー t2 を作成する方法を示しています 。

    Timer t2 value="{_TIMER_t1}+1000"

    値の パラメータもの無地のコピーを作成するために、タイマーの名前を受け入れる のT1 単に呼び出すタイマーを:

    Timer t2 value="t1"

    Timerコマンドは、単一のオブジェクト(タイマーまたはタイマーグループ)またはコンマで区切られたタイマー(グループ)のリストのいずれかを受け入れます。 上記で定義した2つのタイマーを起動するには、

    Timer t1,t2 start

    タイマーは、オプションでグループに関連付けることができます。 グループ化を使用すると、タイマーを論理的に編成し、タイマーを使用してバルク操作を実行できます。 グループは、コンマ区切りタイマーリストと同等のタイマーの単純なリストとして理解する必要があります。 ステータスがなく、テスト結果の外観に影響を与えません。 グルーピングおよびグループ解除は、 グループ を作成および更新するグループ および グループ解除 パラメータによって実行されます。 次の例では、2つのタイマー t1 t2を 作成 し、それらを tgroup というグループに関連付け 、グループ名を使用して両方のタイマーを開始/停止します。

    Timer t1,t2 group=tgroup
    Timer tgroup start
    <task code>
    Timer tgroup stop

    tgroupをtgroup2 という新しいグループに コピー  するには、 次の ようにします。

    Timer tgroup group=tgroup2

    1つのタイマーは、複数のグループのメンバーになることがあります。 タイマーはいつでも自由にグループ化またはグループ解除することができます。tgrouptgroup2の両方から t1 タイマー を削除するには 、次のようにします。

    Timer t1 ungroup=tgroup,tgroup2

    あるいは、すべてのグループからタイマーを削除するには、 ungroup パラメータを空の値で 使用し ます。

    Timer t1 ungroup=

    グループをキャンセルし、そこからすべてのタイマーを削除するには、「グループに記載されているすべてのタイマー取るよう要求として理解されるべきで、次のコマンドを使用し tgroupを してからそれらを削除 tgroupを 」。
     
    Timer tgroup ungroup=tgroup

    グループ名がTimerコマンド引数で使用されると、タイマーのリストに展開され、コマンドで指定された他のすべての操作(開始、停止、値/説明設定など)が各タイマーに適用されます。 次の例では、2つのタイマーを作成してグループ化し、その値を1秒(1000ms)に設定し、説明を「Performance test」に設定して開始します。

    Timer t1,t2 group=tgroup
    Timer tgroup start value=1000 desc="Performance test"

    ご存知のように、1つのコマンドで1つ以上の操作を指定できます。 これらは次の順序で実行されます。
    1. 引数をタイマーのリストに解決し、まだ存在しないタイマーを作成する
    2. 値またはその他の属性(説明など)を設定します。
    3. ungroup パラメータが存在する 場合は グループ解除し
    4. グループ場合は 、グループ パラメータが存在しています、
    5. load パラメータが存在 する場合は参照データをロードし 、
    6. start パラメータ またはstopパラメータが存在する場合は、最初の手順で識別されたタイマを 開始 または 停止し ます。
    この順序では、上記の例を1行のコードに収めることができます。 処理順序に関して、コマンドは「タイマ t1 t2を 作成し 、それらの値と説明を設定し、それらを tgroup と 呼ばれるグループにグループ化して 開始する」の ような要求として理解する必要があります 。

    Timer t1,t2 start value=1000 desc="Performance test" group="tgroup"

    書式
    Timer <name(S)>[start|stop] [desk=<deskription>] [value= <time_millis>] [refvalue=<time_millis>] [load=<XML_file>] [group=<name(S)> ] [ungroup=<name(s)]
    timer load = <XML_file> *赤色は必須パラメータを示します  

    オプション
    name(s)

    - タイマーまたはグループ名、またはコマンドを適用する名前のカンマ区切りリスト。 グループとタイマーの組み合わせも許可されます。 指定された名前のいずれかにスペースが含まれている場合は、リスト全体を二重引用符で囲む必要があります。 固有の名前(複数可)が新しいタイマー(タイマー)を作成します。 名前が、以前に group パラメータで コマンド呼び出しによって作成されたグループに対応する場合、 そのグループに現在存在するタイマーのリストに展開されます。

    start |stop

    - 指定したタイマーを開始または停止します(オプション)。 既に開始されているタイマーの開始または停止したタイマーの停止は効果がなく、エラーを報告しません。

    desc=<description>

    - オプションのタイマー記述。

    value=<time_millis>

    - ミリ秒単位の初期タイマー値(オプション)。 この値は、既存のタイマーの名前を参照することができます。 デフォルト値は0です。 起動したタイマーの値を設定するとタイマーが停止し、タイマーを再起動する必要があります。

    refvalue=<time>

    - ミリ秒単位の基準時間値。 HeartCore Robo Desktopバージョン3.1.2以降、値は任意の 時間値になります 。 このパラメータは、スクリプトの実行中は何の役割も果たさず、レポート目的でのみ使用されます。 基準値が指定されると、 レポート コマンドで 作成された結果のXMLファイルのタイマーエントリに は、参照データと参照データとの相対差(パーセンテージ)が含まれます。 この機能により、2つのアプリケーションバージョンのテストでパフォーマンスの変化を追跡できます。

    load = <XML_file>

    - パラメータは、以前に レポート コマンドで 生成されたXMLファイルから参照データをロードします 。 ファイルが相対パスの場合、レポートファイルと同じ方法で解決されます( _REPORT_DIR変数 で指定された出力パスを意味します)。 XMLはタイマーデータのために解析され、タイマー名のいずれかが現在のスクリプトで作成されたタイマーに対応する場合、XMLタイマー値は現在のタイマーの基準時刻として設定されます。 基準時間と実際に測定された値との差は、新たに生成されたXMLに書き込まれます。 上記 の refvalue パラメータ も参照してください 。 XMLからの参照データの読み込みは、refvalueよりも優先され ます パラメータを設定し、その設定を上書きします。

    ロード操作がタイマーセット(上記の書式で指定された最初のコマンドフォーム)上で動作するタイマーコマンドから呼び出された場合、指定されたセットにのみ適用され、XMLからの他のすべてのデータは破棄されます。 すべてのタイマーの参照データを一度にロードするには、「Timer load = <XML_file>」の2番目のコマンド・フォームを使用します。 このコマンドは内部的に参照データを保存し、既存のタイマーと作成するタイマーをすべて更新するので、グローバルなロード操作はスクリプト内のどこでも呼び出すことができます(必ずしもスクリプトの先頭ではない)。

    group= <group(s)>

    - タイマーを関連付けるグループ名またはカンマ区切りのリスト。 指定されたグループ名のいずれかにスペースが含まれている場合は、リスト全体を二重引用符で囲む必要があります。 一意の名前(複数可)が新しいグループ(グループ)を作成します。 グループ名は、既存のタイマーの名前と同じであってはいけません。 

    ungroup=<group(s)>

    - タイマーを削除するグループ名またはカンマ区切りのリスト。 指定されたグループ名のいずれかにスペースが含まれている場合は、リスト全体を二重引用符で囲む必要があります。 指定されたタイマーが指定されたグループのメンバーである場合、そこから削除されます。

    戻り値
    loadコマンドが採用した場合 、XMLファイルからの参照データを読み取るためのパラメータをXMLが有効であり、少なくとも1つのタイマー値が含まれている場合、それは0(ゼロ)を返します。 XMLにタイマーデータが含まれていないが、形式が正しい場合、このコマンドは1を返します。 ファイルを読み取ることができないか、有効なXMLファイルでない場合、このコマンドは値2を返します。

    load パラメータの ないTimerコマンドは 常に0(ゼロ)を返します。

    使用例
    上記の例を参照してください。


    3.3.8 Warning


    説明
    次へ | 前へ | トップ^
    Warning - レポートに警告を挿入します。 警告は、imageパラメータを使用して特定のスクリーンショットに関連付けることができます。 このような警告は、レポートの画像記述の下に表示されます。 関連付けられたイメージがない場合、警告は単一のコンポーネントとしてレポートに表示されます。

    スクリプトが実行されており、実行中のレポートプロバイダがある場合(つまり、スクリプトに Report コマンド が含まれている場合 )、 Warning コマンドを 実行 するとレポートが更新されます。 アクティブなレポートプロバイダがない場合、内部テーブルに警告が作成されますが、それは決して報告されません。

    書式
    Warning <description> [image=<screenshot_name>]
    *赤色は必須パラメータを示します

    オプション

    description - レポートに表示される警告のテキスト。

    image=<screenshot_name>

    - 警告に関連するスクリーンショット。 スクリーンショット名は、 Screenshot コマンド によって作成されたイメージに対応する必要があります 。

    戻り値
    Warningコマンドは常に0を返します。

    使用例
    Report index.html
    Exec "mozilla file://{_REPORT_FILE}"
    if ({_EXIT_CODE} > 0) {
      Warning "Mozilla failed to start. Error output: {_EXEC_ERROR}"
    }

    - Execコマンドを使用してMozillaブラウザでHTMLレポートを開き、失敗した場合は警告を追加してください。

    Screenshot image.jpg template=template1.png onfail="Warning \"The image image.jpg doesn't seem to display what is expected.\" image=image.jpg"

    - スクリーンショットを撮り、それをテンプレートと比較する template1.png 。 比較が失敗した場合は、イメージの説明に警告を追加します。




    3.4 I/Oコマンド


    3.4.1 Excel


    説明
    次へ | 前へ | トップ^
    Excel - Microsoft Excel 97/2000 / XP(.xls) 、v2.3から MS Excel 2007 XML ドキュメント(.xlsx)の読み書きに対応します。 このコマンドを使用すると、xlsおよびxlsxドキュメントを操作したり、セル値の読み取り、書き込み、検索を行い、Excelでサポートされている形式のサブセットを処理できます。 このコマンドは Apache POIフレームワーク を利用しているため、制限があります。

    このコマンドは、次の一連のアクションを定義します。
    一般的なワークフローは、次のステップで構成されます。
    1. 既存のExcelドキュメントを 開くか(「Excelを開く」) 、新しい ドキュメントを作成するか(「Excelを作成する」)。 スクリプトが一度に複数のドキュメントで動作する場合は、各ファイルにIDでタグを付ける必要があり、その後のすべてのExcelコマンドで参照する必要があります。 この手順では、変数にファイル名、パス、構造体を入力されます。

    2. スプレッドシートを選択(開く)または作成する 。 シートがパラメータによって明示的に指定されていない限り、Excelブックを開くと自動的に最初のスプレッドシートが選択されます。 「Excel create」を使用して新しいドキュメントを作成すると、別の名前が明示的に指定されていない限り、デフォルトの「Sheet1」名を持つデフォルトのスプレッドシートが自動的に作成され選択されます。 後でスプレッドシートの選択を変更するには、 "Excel select"を呼び出します。 新しいスプレッドシートを作成して選択するには、「Excel create」を使用します。 スプレッドシート選択の各変更は、利用可能なスプレッドシートの数、および現在選択されているスプレッドシートの名前と番号を記述するシート変数グループに設定されます。

    3. セルの読み込みは 'Excel select'をコールしたり 、'Excel find'でセル値を検索します。 セルが正常に見つかった場合は、その値、タイプ、フォーマットがスクリプト変数の形式で提供されます。 セルに式が含まれている場合は、 "evaluate"パラメータに応じてテキストまたは結果の値を取得できます。 シートと同様に、セル参照はキャッシュされ、単一セル上で動作する一連のコマンドは、各コマンドインスタンス内の座標(行/セル番号または参照)を指定する必要はありません。

    4. セルを変更するには、 'Excel set'コマンドを使用します。 書式が明示的に指定されていない場合、コマンドはnumberまたはboolean値をチェックし、デフォルトではstringになります。 座標が存在しないセルを指す場合、座標が自動的に作成されます。
    5. v4.4.4以降では、セルを選択して一連の'Excel copy'と'Excel paste'を使用して同じまたは異なるExcelドキュメントに貼り付けることができます。
    6. ドキュメント 閉じて変更を保存または破棄するには、'Excel close'コマンドを呼び出します。 このステップはオプションで、すべてのドキュメントは閉じられ、最終的にスクリプトが終了すると自動的に保存されます。
    読み取りと書き込みの両方の操作を示す典型的な例を次に示します。 既存のExcel2007ファイルを開き、2番目のシートを選択し、最初のセルから値を読み取り、それを2番目のセルに書き出します。

    // Open the Excel file. Exit on any I/O error.
    Excel open file="C:\data\test.xlsx"
    if ({_EXIT_CODE} > 0) {
      Exit {_EXIT_CODE} desc="{_EXCEL_ERROR}"
    }

    // Select the second sheet
    Excel select sheet=1

    // Iterate over all data lines
    for (index=1; {index}<{_EXCEL_SHEET_ROWS}+1;index={index}+1) {

      # Read value from the first cell
      Excel select row={index} column="1"

      # Set value of the second cell
      Excel set row={index} column="2" value="{_EXCEL_CELL_VALUE}"
    }

    Excelコマンドは次の変数に値を設定します。

    誰が創造するのか 変数名 説明
    Excelを開く、
    Excelを作成する

    "File Gorup"
    _EXCEL_FILE
    ドキュメントファイルパス(完全/絶対)。
    _EXCEL_FILENAME
    ドキュメントファイル名。
    _EXCEL_OUTFILE 明示的に指定されている場合、出力ファイルパス(完全/絶対)。
    _EXCEL_OUTFILENAME ファイル名が明示的に指定されている場合は出力ファイル名。
    _EXCEL_SHEET_COUNT
    ドキュメントで使用可能なスプレッドシートの数。
    Excelを開く
    Excelを作成する
    Excelの選択
    (シート)
    Excelのシートを設定する= <>
    Excelのシートを見つける= <>

    "Sheet Group"
    _EXCEL_SHEET_NAME
    現在選択されているシートの名前。
    _EXCEL_SHEET_NUMBER
    現在選択されているシートの番号。
    _EXCEL_SHEET_ROWS
    現在選択されているシートで使用可能な行数。
    Excelの設定
    Excelの選択
    (セル)
    Excelの検索

    "Cell Group"
    _EXCEL_CELL_COLUMN
    選択/発見/変更されたセルの通常の列番号。
    _EXCEL_CELL_ROW
    セルの通常行番号。
    _EXCEL_CELL_TYPE 細胞型; [BLANK、BOOLEAN、ERROR、FORMULA、NUMERIC、STRING]のいずれか
    _EXCEL_CELL_VALUE
    セル値(文字列として)。 4.1.3以降では、セルが
    (日付/数値/通貨形式など) 設定されている場合、値は書式設定されます 。
    _EXCEL_CELL_VALUE_RAW 未処理のセル値(未フォーマット)。 4.1.3以降でサポートされています。
    _EXCEL_CELL_REF
    Excel互換のセル参照(例: "A1"または "J10")。
    すべてのExcelコマンド
    _EXCEL_ERROR
    最後のExcelコマンドの実行またはコンパイルによってThrrowされたエラーのテキスト。
    この変数はv2.3から作成されており
    、Excelの処理に起因するI/Oエラーを追跡できます 。

    通常、コマンドは成功すると0を返し、次の終了コードのいずれかを返します。

    終了コード 擬似コード
    説明
    0
    SUCCESS
    正常終了。
    1
    FAILED_TO_OPEN
    入力ファイルを開くことができませんでした。 ちょうど "Excel open"によって返されます。
    2
    FAILED_TO_SAVE
    ファイルに保存できませんでした。 「Excel close」だけで返されます。
    3 FAILED_TO_CREATE 新しいドキュメントまたはシートの作成に失敗しました。 "Excel create"だけで返されます。
    4
    SHEET_NOT_FOUND
    行パラメータおよび/または列パラメータは、既存のセルを指しません。 「row(行)」と「Column(列)」をサポートするすべてのセル読み取りコマンドによって返されます。
    5
    CELL_NOT_FOUND 指定された座標または指定された値( "Excel find")のセルを見つけることができませんでした。

    各アクションの構文とパラメータについては、後で詳しく説明します。
      
    書式

    Excel open[file=<input_Excel_file>] [outfile=<output_Excel_file>] [id=<identifier>] [sheet=<sheet_name_or_index>]
    *赤色は必須パラメータを示します

    オプション
    file=<Excel_file>

    - 開くExcelファイル。 相対パスは、スクリプトディレクトリ(呼び出し元のスクリプトを含むフォルダ)に対して解決されます。

    outfile=<output_Excel_file>

    - Excelデータを(変更されたかどうかにかかわらず)保存するオプションの出力ファイル。 このパラメータを指定すると、 ファイルは 読み取り専用モードで開かれ、 そのデータがメモリにロードされファイルが破棄モードで閉じられていない限り、 (Excel close save=falseで)outfileファイルに保存されます。 入力ファイルと出力ファイルは同じ形式でなければなりません(どちらもXLSまたはXLSXでなければなりません)。

    id = < identifier >

    - Excelドキュメントの識別子(名前)。 このパラメータは、スクリプトが一度に1つのExcelドキュメントのみを開いたり作成したりする場合に指定する必要はありません。 複数のドキュメントが開かれている場合、識別子(id)で、後述のExcel select/setコマンドでドキュメントを識別します。

    Sheet=<Sheet_name or index>

    - 選択するスプレッドシート。 このパラメータはオプションであり、存在しない場合はデフォルトで最初のスプレッドシートを選択(開く)します。

    戻り値
    0(SUCCESS)または1(FAILED_TO_OPEN)のいずれかOPENコマンド戻ります。 成功すると、 File Sheet 変数グループ から変数が読み込まれます 。

    使用例

    Excel open file="data.xls"

    - 読み込み/書き込みモードで、スクリプトと同じディレクトリにあるMS Excelドキュメントを開きます。

    Excel open file="C:\Data\data.xls" outfile="newdata.xls"

    - 指定されたディレクトリにあるMS Excelドキュメントを読み取り専用モードで開きます。 ドキュメントが閉じられたら、コンテンツを保存し、最終的にすべての変更をスクリプトディレクトリの指定された出力ファイルに保存します。 出力ファイルが存在する場合は上書きされます。



    Excel
    create file=<Excel_file>[id=<identifier>] [sheet=<sheet_name>]
    Excel create sheet=<sheet_name>  [id=<identifier>] 

    *赤色は必須パラメータを示します

    オプション
    file =<Excel_file>

    - 作成するExcelファイル。 相対パスは、スクリプトディレクトリ(呼び出し元のスクリプトを含むフォルダ)に対して解決されます。 ファイルが存在する場合は上書きされます。

    id=<identifier>

    - 作成されたドキュメントの識別子(名前)。 このパラメータは、スクリプトが一度に1つのExcelドキュメントのみを開いたり作成したりする場合に指定する必要はありません。 複数のドキュメントが開かれている場合、識別子は、後続のExcel Select/Set書き込みコマンドでドキュメントを識別します。

    Sheet= <sheet_name>

    - 作成するスプレッドシートの名前。 新しいファイルを作成するために指定されたfileパラメータでコマンドが呼び出された場合、sheetパラメータはオプションです。 存在しない場合、コマンドはMS Excelと同じように動作し、新しく作成されたファイルに "Sheet1"というデフォルトスプレッドシートを作成します。

    戻り値
    指定された名前のシートが既に存在する場合、例えば、障害に開放命令戻り値0(成功)または3(FAILED_TO_CREATE)を返します。 このコマンドは、 File および Sheet 変数グループ から変数を入力します 。

    使用例
    Excel create file="C:\Data\log.xls"

    - 新しいExcelドキュメントをメモリに作成し、指定されたファイルに関連付けて出力します。 このコマンドは、 "Sheet1"というシートを作成して選択します。

    Excel create file="C:\Data\log.xls" sheet="Data"
    - 前の例と同じですが、シートには「Data」という名前が付けられます。

    Excel create sheet="Data"

    - 現在開いているドキュメントに「Data」という名前の新しいシートを作成します。



    Excel select [sheet=<sheet_name_or_index>] [id= <identifier>]
    Excel select  [row=<row_number>] [column=<column_number_or_id>] [sheet=<sheet_name_or_index>] [id=<identifier>]
    Excel select [ref=<cell_id>] [sheet=<sheet_name_or_index>] [id=<identifier>]
    *赤色は必須パラメータを示します 
     
       

    オプション
    row=<row_number>
    column=<column_number_or_id>

    - 選択するセルを識別する行と列の通常の数字。 番号は1から始まります。列は、MS Excel( "A" - "ZZ")で使用されるアルファベットIDでさらに参照することができます。 たとえば、 "column = C"は "column = 3"に等しくなります。 「行」と「列」のパラメータは常に一緒に存在していなければなりません。 パラメータは、「現在の」セルを指定するための最初のセル操作で必須です。 次に、参照がキャッシュされ、単一のセル上で動作するコマンドのシーケンスは、「列」/「行」または「ref」座標を繰り返さない。

    ref=<cell_id>

    - 「A1」や「J10」などのMS Excel参照と互換性のあるセルID。 セル参照の代替方法として提供されています。 このパラメータは、行/列パラメータのペアと一緒に使用しないでください。

    sheet=<sheet_name or index>

    - スプレッドシートを選択(開く)します。 コマンドは、シートを選択するためだけに使用されている場合(上のリストの最初の形式)、このパラメーターは必須です。 特定のセルをターゲットとしている他のコマンドフォームは、それを必要とせず、存在しない場合は、最後に選択したシート上でコマンドを実行します。

    evaluate=<true|false>

    - FORMULAセルの処理方法を制御するフラグ。 「真」の場合、セルの値は計算された式の結果になります。 それ以外の場合は、_EXCEL_CELL_VALUEの下に格納されたセルの値に式のテキストが含まれます。 ターゲットセルがFORMULAセルでない場合、このパラメータは無視されます。 デフォルト値は "false"です。

    id=<identifier_or_name>

    - 操作を適用するドキュメント識別子。 スクリプトが1つのExcelドキュメントをopen/createし、open/createコマンドでidが指定されていない場合は、このパラメータを指定する必要はありません。

    戻り値
    'open'コマンド、0(成功)、4(SHEET_NOT_FOUND)または5(CELL_NOT_FOUND)を返します。 このコマンドは、 Sheet および Cell変数グループ から変数を入力します 。

    使用例
    Excel select sheet=2

    - ドキュメント内の2番目のシートを選択し、そのプロパティを シート 変数に 保存し ます。

    Excel select sheet="Data"
    - ドキュメント内の "データ"というシートを選択します。

    Excel select row=2 column=4
    - 現在のシート内の指定された位置のセルを選択し、そのプロパティを Cell 変数に 取り込み ます。

    Excel select sheet="Results" ref=A5
    - "Results"シートを選択し、指定された位置(5行目、1列目)のセルを選択します。 Sheet 変数 と Cell 変数の 両方の グループがシート/セルのプロパティで更新されます。


    Excel find  [value=<value>]   [type= <type>] [sheet=<sheet_name or index>] [evaluate=<true|false>] [id=<identifier>]
    Excel find  [pattern= <reguler_expression>] [type=<type>] [sheet= <sheet_name or index>]  [evaluate=<true|false >] [id=<identifier>]
    *赤色は必須パラメータを示します

    オプション
    value= <value>

    - 検索する値の文字列表現。 現在のシートは、指定された値を持つセルに対して行ごとに検索され、最初に一致するものが選択されます。

    pattern=<reguler_expression(正規表現)>

    - 正規表現に一致するセル値を検索します。 この式は、Java Pattern仕様 に準拠している必要があります 。

    type=<type>

    - 検索を制限するセルのタイプ。 [BLANK(空白)、BOOLEAN(ブーリアン)、ERROR(エラー)、FORMULA(数式)、NUMERIC(数値)、STRING(文字列)]のいずれかでなければなりません。 パラメータが指定されていない場合は、すべてのセルタイプが検索されます。

    sheet=<sheet_name or index>

    - スプレッドシートを選択(開く)します。 このパラメータはオプションであり、指定されていない場合は、最後に選択したシートに対してコマンドが実行されます。

    evaluate=<true|false>

    - FORMULAセルの処理方法を制御するフラグ。 「真」の場合、セルの値は計算された式の結果になります。 それ以外の場合は、指定した値が数式テキストと比較されます。 デフォルト値は "false"です。

    id=<identifier_or_name>

    - 検索するドキュメント識別子。 スクリプトが1つのExcelドキュメントをopen/createし、open/createコマンドでidが指定されていない場合は、このパラメータを指定する必要はありません。

    戻り値
    openコマンドは戻り値0(成功)、4(SHEET_NOT_FOUND)または5(CELL_NOT_FOUNDを)を返します。 セルが正常に配置されている場合、コマンドは Sheet 変数 と Cell 変数から値を設定します。

    使用例
    Excel find value="Test data"
    if ({_EXIT_CODE} > 0) {
      Warning "The \"Test data\" cell was not found."
      Exit 1
    }
    Excel select row={_EXCEL_CELL_ROW}+1 column={_EXCEL_CELL_COLUMN}

    - 現在のスプレッドシートで「テストデータ」というテキストが含まれているセルを検索します。 成功した場合は、見つかったセルの下のセルを選択します。 検索が失敗した場合は、警告を記録し、終了コード1でスクリプトを終了します。

    Excel find value="2" evaluate=true
    - 2の数字を含む数値セル、または "2"を含むテキストセルを現在のシートから検索します。 評価フラグがオンになると、FORMULA型の各セルが計算され(評価され)、2の値と比較されます。

    Excel find sheet="Data" pattern="boo.*"
    - ドキュメント内の "データ"というシートを選択し、 "boo"で始まる最初の値を検索します。

    Excel find type=FORMULA pattern="SUM\(.*\)"
    - 現在のシートを検索して、集計式を含むFORMULAタイプの最初のセルを探し、そのプロパティーを Cell 変数に 取り込み ます。 "evaluate"フラグが指定されておらず、デフォルトはfalseであるため、_EXCEL_CELL_VALUEには数式テキストが入力されます。

    Excel find type=FORMULA pattern="SUM\(.*\)" evaluate=true
    - 前の例と同じです。 ただし、_EXCEL_CELL_VALUEには数式の結果、つまり数式テキストで指定されたセルの合計と等しい数値が含まれます。



    Excel
    set  [row=<row_number>] [column=<column_number_or_id>] [sheet=<sheet_name_or_index>]  [id=<identifier>] [type=<type>] [value=<value>]
    Excel set [ref=<cell_id>] [sheet=<sheet_name_or_index>]  [id=<identifier>] [type=<type>] [value=<value>] 
     
    *赤色は必須パラメータを示します

    オプション
    row = <row_number>
    column=<column_number_or_id>

    - 選択するセルを識別する行と列の通常の数字。 番号は1から始まります。列は、MS Excel( "A" - "ZZ")で使用されるアルファベットIDでさらに参照することができます。 たとえば、 "column = C"は "column = 3"に等しくなります。 「行」と「列」のパラメータは常に一緒に存在していなければなりません。 パラメータは、「現在の」セルを指定するための最初のセル操作で必須です。 次に、参照がキャッシュされ、単一のセル上で動作するコマンドのシーケンスは、「列」/「行」または「ref」座標を繰り返さない。

    ref=<cell_id>

    - MS Excelと互換性のあるセルid(例:「A1」または「J10」)。 セル参照の代替方法として提供されています。 このパラメータは、行/列パラメータのペアと一緒に使用しないでください。

    sheet= <sheet_name or index>

    - スプレッドシートを選択(開く)します。 コマンドは、シートを選択するためだけに使用されている場合(上記のリストの最初のコマンド構文形式)、このパラメーターは必須です。 特定のセルをターゲットとしている他のコマンドフォームは、それを必要とせず、存在しない場合は、最後に選択したシート上でコマンドを実行します。

    type= <type>

    - 設定するセルのタイプ。 [BLANK(空白)、boolean(ブーリアン)、ERROR(エラー)、FORMULA(数式)、NUMERIC(数値)、STRING(文字列)]のいずれかでなければなりません。 パラメーターが指定されていない場合、タイプはSTRINGにデフォルト設定されます。

    value=<value>

    - 設定するセルの値。 これは、細胞の種類に合わせる必要があります。 たとえば、セルタイプがNUMERICの場合、値は有効な数値でなければなりません。 "type"パラメータが指定されていない場合、コマンドはそれが数値かブール値か文字列かを推測し、それに応じてセルタイプを設定します。 この動作を無効にするには、型を明示的に指定します。

    値には数値式が含まれることがありますが、数値評価が必要であることをコンパイラに伝えるには、その型を明示的にNUMERICに設定する必要があります。 FORMULA型のセルを作成して移入するには、 type = "FORMULA" パラメータを 使用し 、先行する等号の有無にかかわらず、式として値を指定します。 例えば、 "SUM(A1:A4)" "= SUM(A1:A4)" は有効な式です。

    id=<identifier_or_name>

    - set操作を適用するドキュメント識別子。 スクリプトが1つのExcelドキュメントをオープン/作成し、open / createコマンドでIDが指定されていない場合は、このパラメータを指定する必要はありません。

    戻り値
    openコマンドは、0(成功)、4(SHEET_NOT_FOUND)または5(CELL_NOT_FOUNDを)返します。 セルが正常に配置されている場合、コマンドは値および/またはセルタイプを設定し、 Sheet および Cell 変数グループ から 変数を設定します。

    使用例
    Excel set ref=A5 value="Test data"

    - 現在のシートのA5セルの値を "テストデータ"に設定します。 セルタイプはSTRINGになります。

    Excel set row=1 column=A value="2" sheet="Results"

    - "Results"シートを選択し、A1セルの値を2に設定します。値が明らかに数値型であるため、セルタイプは自動的にNUMERICに設定されます。

    # Declare the variable as numeric to supress compiler error
    Var _EXCEL_CELL_VALUE=1
    Excel set row=1 column=A value="2"
    Excel set value={_EXCEL_CELL_VALUE}+1 type=NUMERIC

    - A2セルの値を2に設定し、3にインクリメントします。_EXCEL_CELL_VALUEの宣言は、値を評価しようとするときにコンパイラエラーを抑止するためにのみ必要です。

    Excel set row=5 column=1 type=FORMULA value="SUM(A1:A4)"
    Excel select evaluate=true

    - A5のセルの値をA1-A4セルの要約式に設定し、結果を取得します。


    Excel
    copy  [row=<row_number>] [columns=<column(s)>] [sheet=<sheet_name_or_index>]  [id=<identifier>]
    *赤色は必須パラメータを示します

    オプション
    rows= <row(s)>
    columns= <column(s)>

    - 後続のExcel paste操作のために選択されるセルを識別する行と列。行は、単一の数字( "1")、範囲( "1-5")、またはカンマまたはセミコロンで区切られた数字および/または範囲( "1; 3; 5-6")のリストとして指定できます。列は、数字の代わりに文字が使用される場合と同じ構文をサポートします( "A; C; EF")。番号付けは1から始まります

    "rows"と "columns"パラメータは常に共に存在する必要があります。このコマンドは、指定された行と列にあるすべてのセルを選択します。たとえば、「行= 1〜2」および「列= AC」のパラメーターは、A1、A2、B1、B2、C1、およびC2の6つのセルを選択します。

    このコマンドは、選択されたセルからデータの内部コピーを作成しません。選択への参照を保存するだけです。選択したセルがコピー操作と貼り付け操作の間に変更されると、更新されたデータがコピーされます。

    sheet = <
    sheet_name_or_index >
    - セルを選択するためのスプレッドシート。名前または1から始まる通常の番号のどちらでも指定できます。指定されていない場合、コマンドは最後に選択された(アクティブな)シートにフォールバックします。

    id = <
    identifier_or_name >
    - コピー元の文書の識別子。スクリプトがExcel文書を1つだけ開く/作成し、open / createコマンドでIDが指定されていない場合は、このパラメーターを指定する必要はありません。

    戻り値
    copyコマンドは、0 (成功) またはランタイムの問題で操作を完了できない場合に構文エラーを返します。

    使用例
    Excel open file="source.xls" id="source"
    Excel copy rows=1-3 columns=A id="source"

    Excel open file="target.xls" id="target"
    Excel copy ref=B1 id="target"

    - source.xlsファイルのセルA1、A2、およびA3をtarget.xlsファイルのB1、B2、およびB3セルにコピーします。


    Excel
    paste  [row=<row_number>]  [column=<column_number_or_id>]  [sheet=<sheet_name_or_index>]  [id=<identifier>]
    Excel paste  [ref=<cell_id>]  [sheet=<sheet_name_or_index>]  [id=<identifier>]
    * 赤色は必須パラメータを示します

    オプション
    row=<row_number>
    column=<column_number_or_id>

    - Excel copyで以前に選択したセルを貼り付けるターゲット位置。番号は1から始まります。例えば、セルA1とA2がコピーされ、ターゲット位置が "row = 2"と "column = 3"に設定されている場合、データはC2とC3に貼り付けられます。

    貼り付けられたセルに数式が含まれている場合、その参照はターゲットの場所に関して移動されます。 たとえば、A1から始まる数値の列とその合計( "= SUM(A1:A5)")をコピーしてB2セルに貼り付けると、数式は "= SUM(B2:B6)"に更新されます。 このコマンドは、選択されたデータの外側にある他のシートまたはセルへの外部参照を認識しようとしても、破損した参照になることはありません。 そのようなセルをコピーするには、Excel setコマンドを使用します。

    ref=<cell_id>

    - 貼り付けるMS Excelと互換性のあるターゲットセルID。たとえば、 "A1"または "J10"。 セル参照の代替方法として提供されています。 このパラメータは、行と列のパラメータペアと一緒に使用しないでください。

    sheet=<sheet_name_or_index>

    - 貼り付けるスプレッドシートは、名前または1から始まる通常の番号のどちらでも指定できます。指定されていない場合、コマンドは最後に選択された(アクティブな)シートにフォールバックします。

    id=<
    identifier_or_name>
    - コピー元の文書の識別子。 スクリプトがExcel文書を1つだけ開く/作成し、open / createコマンドでIDが指定されていない場合は、このパラメーターを指定する必要はありません。

    戻り値
    pasteコマンドは、0 (成功) またはランタイムの問題で操作を完了できない場合に構文エラーを返します。

    使用例
    例については、Excel copyコマンドを参照してください。


    Excel
    close [id=<identifier>] [save=<true|false>]
    *赤色は必須パラメータを示します

    オプション
    id=<identifier_or_name>

    - 閉じようとしているドキュメントの識別子。 スクリプトが1つのExcelドキュメントをオープン/作成し、open / createコマンドでIDが指定されていない場合は、このパラメータを指定する必要はありません。

    save=<true|false>

    - Trueはドキュメントをファイルシステムに保存し、falseは変更を破棄します。 デフォルト値は "true"で、変更があった場合はスクリプトの実行が終了した後にファイルが自動的に保存されます。

    戻り値
    0(成功)またはI/Oエラーで戻り値2(FAILED_TO_SAVE)を返します。 また、すべてのExcel固有の変数をコンテキストからクリアします。

    使用例

    Excel open file=test.xls
    ...
    Excel close

    - ファイルを閉じます。 コンテンツが変更されている場合は、変更をtest.xlsファイルに保存します。


    Excel open file=test.xls outfile=test2.xls
    ...
    Excel close

    - ファイルを閉じます。 test.xlsからロードされたコンテンツは、変更されているかどうかにかかわらず、test2.xlsに書き込まれます。

    Excel open file=test.xls id="testfile"
    ...
    Excel close id="testfile" save=false

    - ファイルを閉じて、最終的な変更を破棄します。 "testfile" IDは "Excel open"でファイルに割り当てられているので、 "Excel close"で指定する必要があります。

    3.4.2 File


    説明
    次へ | 前へ | トップ^
    File - テキストファイルの読み書きを行います。 このコマンドを使用すると、カンマ区切り値(CSV)形式または正規表現のいずれかを使用して、プレーンテキストファイルのオープンまたは作成、テキストの読み取り/書き込み、検索文字列/正規表現および個々のテキスト行からの値の解析が可能です。

    ファイルは、デフォルトでUTF-8エンコーディングで開かれ、保存されます。 ファイル内容は、行ごとにJava文字ストリームを使用して読み取られ、メモリ内の文字列バッファに格納されます。 すべての後続のI/O操作はバッファ上で実行され、ファイルが明示的にクローズされるか、またはスクリプトが標準的な方法で終了したときにのみコンテンツがファイル(または出力ファイル)に書き込まれます)。 このコマンドは小さなファイル(数十kBまで)を処理するのに適しており、大きなデータファイルではそのパフォーマンスが大幅に低下します。

    このコマンドは、次の一連のアクションを定義します。
    一般的なワークフローは、次のようなステップで構成されています。
    1. 既存のファイルを 開く('File open')か 、新しい ファイルを作成します('File create')。 この手順では、変数にファイル名、パス、構造体を入力します。 スクリプトが一度に複数のファイルで動作する場合は、各ファイルにidでタグを付ける必要があり、それ以降のすべてのFileコマンドでそのファイルを参照する必要があります。
    2. ファイル内の既知の位置から 読み取るには、 "File read"を使用します。 位置が不明な場合、'File find'を使用してテキスト値の位置を特定することができる。 ファイルに特定の形式のデータが含まれている場合は、'File parse'によって解析します。 このコマンドは、CSV形式の値の読み取りまたはカスタム正規表現に基づく値の解析をサポートしています。
    3. するには 、ファイルへの書き込みは、 'File append'または 'File insert' のいずれかを使用します。 appendアクションは、テキストをファイルの末尾に追加します。 insertは、テキストをファイルの特定の位置に挿入することを可能にします。
    4. ドキュメント 閉じて変更を保存または破棄するには、'File close'コマンドを呼び出します。 このステップはオプションで、すべてのドキュメントは閉じられ、最終的にスクリプトが終了すると自動的に保存されます。

    ファイルのナビゲーションと解析されたテキストの取得は、以下の変数を使用して有効になります。

    作成者、グループ名
    変数名 説明
    ファイルを開く、
    ファイルを作成する

    (いわゆる「 File Group 」)
    _FILE_FILE
    ファイルパス(完全/絶対)。
    _FILE_FILENAME
    ファイル名。
    _FILE_OUTFILE 明示的に指定されている場合、出力ファイルパス(完全/絶対)。
    _FILE_OUTFILENAME ファイル名が明示的に指定されている場合は出力ファイル名。
    ファイルを開く
    ファイルを作成する
    ファイルを追加する
    ファイル挿入

    (「 CounterGroup 」)
    _FILE_LENGTH 新しい行の文字を含むファイルの長さ。
    一部のUTF-8文字は複数のバイトでエンコードされる可能性があるため、ファイルサイズ に一致 する 必要はありません 。
    _FILE_LINE_COUNT ファイル内のテキスト行の数。
    ファイルの検索
    ファイルの読み込み
    ファイルの解析
    ファイルの挿入

    ( " LineGroup ")
    _FILE_LINE_NUMBER
    現在処理されている行の番号。 線は1(1)から番号が付けられます。
    _FILE_LINE_LENGTH 改行文字を除く現在の行の文字数。
    _FILE_LINE_TEXT 現在の行のテキスト(改行文字のない完全な長さ)。
    _FILE_LINE_COLUMN 行の列(文字)番号。 列の番号
    は、行の先頭 を 表す 1(1) から始まります。 この変数には
    、検索されたテキストの行上の位置 を示す "検索"アクションが設定されます 。 他のコマンドは、「列」
    パラメータまたはそのデフォルト値1(1)を 模倣する 。
    ファイル読み込み
    _FILE_READ
    "File read"コマンドによって読み込まれるテキスト。
    ファイルの削除
    _FILE_DELETED
    テキストは "ファイル削除"コマンドによって削除されます。
    ファイル解析

    ( " ParseGroup ")
    _FILE_PARSE_COUNT
    「ファイル解析」によって解析された値の数。
    _FILE_PARSE_VALUE <N>
    <N>が1〜_FILE_PARSE_COUNTのテキスト行から解析されたN番目の値。

    通常、コマンドは成功した場合は0を返し、次の終了コードのいずれかを返します。

    終了コード 擬似コード
    説明
    0
    SUCCESS
    正常終了。
    1
    FAILED_TO_OPEN
    入力ファイルを開くことができませんでした。 'File open'だけで返されます。
    2
    FAILED_TO_SAVE
    ファイルに保存できませんでした。 'File close'だけで返されます。
    3 FAILED_TO_FIND
    値を見つけることができませんでした。 失敗したテキスト検索を示すために 'File find'だけで返されます。
    4
    INVALID_POSITION
    行および/または列のパラメータは、ファイル内の既存の位置を指していません。
    "line"と "column"をサポートするすべてのコマンドによって返されます。
     
    各アクションの構文とパラメータについては、後で詳しく説明します。
      
    書式


    File
    open [file=<file>] [outfile = <output_file>] [id = <identifier>]
    File create [file= <file>] [id = <identifier>]
    *赤色は必須パラメータを示します

    オプション
    file=<file>

    - ファイルを開くか作成します。 相対パスは呼び出し元のスクリプトの場所(呼び出し元のスクリプトが格納されているフォルダを意味します)に対して解決されます。

    outfile=<output_file>

    - 任意の出力ファイル設定。 このコマンドを指定すると、ファイルのコピーが作成され、すべての変更がソースファイルではなく適用されます。 相対パスは呼び出し元のスクリプトの場所(呼び出し元のスクリプトが格納されているフォルダを意味します)に対して行われます。 このパラメータを省略すると、ファイルは読み取り/書き込みモードで開かれます。 ファイルがすでに存在する場合は上書きされます。

    id=<identifier>

    - ファイルの識別子(名前)。 このパラメータは、スクリプトが一度に1つのファイルを開く/作成する場合は省略できます。 複数のファイルが開かれている場合、識別子は必須であり、Fileコマンドでそのファイルを識別します。

    戻り値
    OPENコマンドは0(成功)または1(FAILED_TO_OPEN)のいずれかを返します。 createコマンドは、メモリにファイルを作成するだけなので、常に0を返します。 コマンドが0で終了すると、 File およびCounterの 変数グループ から変数が読み込まれます 。

    使用例

    File open file="data.csv"

    - 読み取り/書き込みモードでスクリプトと同じディレクトリにあるCSVファイルを開きます。

    File open file="C:\Data\data.csv" outfile="newdata.csv"

    - 指定したディレクトリにあるCSVファイルを読み取り専用モードで開きます。 ファイルが閉じられたら、内容を保存し、最終的にすべての変更をスクリプトディレクトリの指定された出力ファイルに保存します。 出力ファイルが存在する場合は上書きされます。

    File create file="C:\Data\log.txt"

    - 新しいファイルコンテンツバッファをメモリに作成し、指定されたファイルと関連付けて出力します。



    File
    append [text=<text>] [id=<identifier>] 
    *赤色は必須パラメータを示します

    オプション
    text=<text>

    - ファイルの最後に追加するテキスト。 任意のUTF-8文字を含むことができます。 改行を使用するには、 "\n"を使用します。 通常のテキストで "\n"シーケンスを使用する必要がある場合は、バックスラッシュ文字( "\\n")を二重にします。

    id=<identifier>

    - テキストを追加するファイルの識別子。 これは、 ファイルのopen または create コマンドで 指定されたidと等しくなければなりません 。 スクリプトが1つのファイルをオープン/作成し、open/createコマンドでid指定されていない場合は、パラメータを指定する必要はありません。

    戻り値
    コマンドは常に0(成功)を返します。 ファイルサイズと最終的に行数を変更するため、コマンドは Counter グループの 変数を更新します 。

    使用例

    File append text="This is one line\nwhile this is another one"

    - ファイルの最後に2行のテキスト "This is one line"と "これはもう1つです"を追加します。

    File append text="screws\\nails"

    - 1行のテキスト「\ nails」を追加します。 バックスラッシュ文字は、改行文字として解釈されるため、この場合は2倍にする必要があります。



    File
    insert  [text=<text>] [line=<line_number>] [column=<column_number>]  [id=<identifier>]
    *赤色は必須パラメータを示します  

    オプション
    text = < text >

    - ファイルに挿入するテキスト。 任意のUTF-8文字を含むことができます。 改行を使用するには、 "\ n"を使用します。 通常のテキストで "\ n"シーケンスを使用する必要がある場合は、バックスラッシュ文字( "\\ n")を二重にします。

    line=<line_number>

    - テキストを挿入する行番号。 番号は1から始まります。行番号が範囲外の場合、コマンドは失敗し、終了コード4(INVALID_POSITION)になります。

    column=<column_number>

    - テキストを挿入する列(文字番号)。 番号は1から始まります。指定されていない場合、コマンドはデフォルトで行の先頭(column = 1)に挿入されます。 列の文字数が行の文字数より大きい場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。

    id=<identifier>

    - テキストを挿入するファイルの識別子。 これは、 ファイルのオープン または 作成 コマンドで 指定されたidと等しくなければなりません 。 スクリプトが1つのファイルをopen/createし、open/createコマンドでidが指定されていない場合は、パラメータを指定する必要はありません。

    戻り値
    lineとcolumnのパラメータがファイル内の既存の位置を指していない場合、コマンドは0(SUCCESS)または4(INVALID_POSITION)を返します。 ファイルサイズと最終的に行数を変更するため、コマンドは Counter グループの 変数を更新します 。 このコマンドは、 Line 変数グループを 更新 して、[line、column]座標が指す行に関する情報を提供します。

    使用例

    File read line=2
    File insert text=" and potatoes" line=2 column={_FILE_LINE_LENGTH}+1

    - 2番目の行の最後に "and potatoes"を追加します。 "File read"コマンドは、行の長さ(_FILE_LINE_LENGTH変数)を取得するために呼び出されます。

    File find text="bananas"
    File insert text=" and potatoes" line={_FILE_LINE_NUMBER} column={_FILE_LINE_COLUMN}+7

    - "bananas"を検索し、テキストを挿入して "bananas and potatoes"を作成します。 この例では、findコマンドが成功するかどうかはテストされません。


    File
    find  [text=<text>]  [line=<line_number>] [column=<column_number>]  [direction=<forward|backward>] [scope=<line|file>] [id=<identifier>]
    *赤色は必須パラメータを示します

    オプション
    text=<text>

    - 検索するテキスト。 任意のUTF-8文字を含むことができます。 改行を使用するには、 "\n"を使用します。 "\n"シーケンスを通常のテキストとして使用する必要がある場合は、円記号( "\\n")を2倍にします。

    line=<line_number>

    - 検索を開始する行番号。 行番号が範囲外の場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。

    column=<column_number>

    - 検索を開始する列(文字番号)( 'line' とともに使用する )。 番号は1から始まります。指定しない場合、コマンドはデフォルトで行の先頭(column = 1)から検索します。 列の文字数が行の文字数より大きい場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。

    direction=<forward|backward >

    - 検索モード。 デフォルトのものは forward で 、[line、column]で指定された位置からファイルまたは行の終わりに向かって検索します。 逆方向 モードでは、指定された位置から逆方向に検索します。

    scope=<file|line>

    - 検索範囲。 デフォルトの ファイル fileで、ファイル全体またはその一部を検索します。 line スコープは、指定された行またはその一部と改行文字を含めることはできません検索テキストだけを検索することができます。

    id=<identifier>

    - 検索されるファイルの識別子。 これは、 File open または create コマンドで 指定されたidと等しくなければなりません 。 スクリプトが1つのファイルをオープン/作成し、open/createコマンドでidが指定されていない場合は、パラメータを指定する必要はありません。

    戻り値
    このコマンドは、テキストが見つかった場合は0(SUCCESS)、テキストが見つからない場合は3(NOT_FOUND)、行と列のパラメータがファイル内の有効な位置を指していない場合は4(INVALID_POSITION)を返します。 検索が成功すると、 Line 変数グループが更新され、ターゲット[行、列]座標を提供します。

    使用例
    File find text="bananas"
    if ({_EXIT_CODE} == 3) {
      Exit 3
    }
    File insert text=" and potatoes" line={_FILE_LINE_NUMBER} column={_FILE_LINE_COLUMN}+7

    - ファイルを検索して「バナナ」を探し、テキストを挿入して「バナナとジャガイモ」を作成します。 単語が見つからない場合、スクリプトは終了コード3で終了します。


    File
    read   [line= <line_number>] [column=<column_number>] [length=<length_in_chars>]  [id= <identifier>]
    *赤色は必須パラメータを示します

    オプション
    line=<line_number>

    - 読み込む行の番号。 行番号が範囲外の場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。

    column=<column_number>

    - 読み込む列(文字番号)。 番号は1から始まります。指定されていない場合、コマンドは行の先頭(column = 1)から読み取ります。 列の文字数が行の文字数より大きい場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。

    length=<length_in_chars>

    - 読み込む文字数を指定するオプションの長さ。 範囲はテキスト行の境界を超えてはいけません。 lengthパラメータが指定されていない場合、コマンドは指定された行の終わりまで(改行文字を除く)読み込みます。

    id=<identifier>

    - 読み込むファイルの識別子。 これは、 File open または create コマンドで 指定されたidと等しくなければなりません 。 スクリプトが1つのファイルをopen/createし、open/createコマンドでidが指定されていない場合はパラメータを指定する必要はありません。

    戻り値
    行と列のパラメーターがファイル内の有効な位置を指していない場合は、テキストが見つかって正常に読み取られた場合は0(SUCCESS)、正常に読み取られない場合は4を返します(INVALID_POSITION)。 成功した場合、抽出されたテキストは_FILE_READ変数に格納されます。 このコマンドは、 Line 変数グループを 更新 して、[line、column]座標が指す行に関する情報を提供します。

    使用例
    File find text="bananas" line=2 scope=line
    File read line=2 length={_FILE_LINE_COLUMN}
    Type "{_FILE_READ}"

    - 2行目の "bananas"という単語を探し、単語の前にあるテキストを読んで入力します。


    File
    parse  [line=<line_number>]  [delimeter=<delimeter_char>] [separator=<separator_char>] [trim=<true|false>] [id= <identifier>]
    File parse  [line=<line_number>] [pattern=<regular_expression>][trim=<true|false>] [id = <識別子>]
    *赤色は必須パラメータを示します  
     

    このコマンドは、デフォルトでは、カンマ区切り値(CSV)指定に従って、指定された行から値を読み取ります。 このコマンドは、 Wikipediaの Comma-Separated Valuesの記事で指定されたルールと互換性が あり、複数行の値をサポートします。 解析メカニズムは、オプションのカスタムテキスト区切り文字、値区切り記号でさらにカスタマイズできます。 トリミングモード。

    "pattern"パラメータが指定されている場合、このコマンドは、指定されたJava互換の正規表現に基づいて行を解析します。 この方法は java.lang.String.split() メソッドを利用しており、基本的にCSVのメカニズムとは異なります。 たとえば、スペースで区切られた個々の単語を解析するには、正規表現「\ s」を使用します。 このモードはCVSの解析と混在することはできません。 "delimeter"や "separator"と同時に "pattern"を指定することはできません。

    解析された値は、一連の番号付き変数(_FILE_PARSE_VALUE1、_FILE_PARSE_VALUE2、...)とカウンタ (_FILE_PARSE_COUNT)を介して使用可能になり、ネストされた変数名を持つforループを介してスクリプト内で取り出すことができます(例のセクションを参照) 。 また、このコマンドは行変数を変更し、行番号を最後に処理された行に設定します。 これは、複数行の値を含む可能性のある行に対して正しく反復することを可能にする重要な機能です。 

    オプション
    line=<line_number>

    - 解析する行の番号。 行番号が範囲外の場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。

    delimeter=<delimeter_char>

    - テキスト区切り文字として機能する文字。 このパラメータを指定しないと、デフォルトでCSV互換の二重引用符( ")が使用されます。

    separator=<separator_char>

    - 値の区切り文字として使用される文字。 このパラメータを指定しないと、デフォルトでCSV互換のカンマ(、)が使用されます。

    pattern=<regular_expression>

    - 値を区切る値を表す正規表現。 この解析モードは、内部的に java.lang.String.split() メソッドに 依存します。 この式は、Java Pattern仕様に 準拠している必要があります 。

    trim=<true|false>

    - trueの値は、解析された各値の最初と最後から空白を削除します。 このモードはCSV互換ではなく、 RFC 4180の 要件を満たしていないことに注意してください 。 デフォルト値はfalseです(トリムしないでください)。

    id=<identifier>

    - 読み込みおよび解析するファイルの識別子。 これは、 ファイルのオープン または 作成 コマンドで 指定されたidと等しくなければなりません 。 スクリプトが1つのファイルをopen/createし、open/createコマンドでidが指定されていない場合は、パラメータを指定する必要はありません。

    戻り値
    行と列のパラメーターがファイル内の有効な位置を指していない場合は、テキストが見つかって正常に読み取られた場合は0(SUCCESS)、正常に読み取られた場合は4を返します(INVALID_POSITION)。 成功すると、コマンドは Parse 変数グループに値を設定し、 1 も 処理された行についての情報で 更新します 。

    使用例

    Wikipediaで 例として挙げられている一連のデータを見てみましょう :

    1997年 フォード
    E350
    AC、ABS、月 3000.00
    1999年
    シボレー
    ベンチャー「Extended Edition」
    4900.00
    1999年
    シボレー ベンチャー「Extended Edition、Very Large」
    5000.00
    1996年
    ジープ
    グランドチェロキー 販売しなければならない!
    空気、ムーンルーフ、ロード
    4799.00

    対応するCSVファイルは次のようになります。

    1997,Ford,E350,"ac, abs, moon",3000.00
    1999,Chevy,"Venture ""Extended Edition""","",4900.00
    1999,Chevy,"Venture ""Extended Edition, Very Large""","",5000.00
    1996,Jeep,Grand Cherokee,"MUST SELL!
    air, moon roof, loaded",4799.00

    次のスクリプトは、行を1つずつ解析し、個々のCSV値を出力します(結果が接続されているリモートデスクトップのテキストエディタを開くのを確認するため)。 また、通常、行の5番目の値にあるすべての価格の合計を計算して出力します。 2番目の最後の行には複数行の値が含まれているため、ファイルの行数を単純に反復することはできません。

    File open file="data.csv"

    # We declare the fifth variable just to supress compiler error in the Eval cmd below
    Var sum=0 _FILE_PARSE_VALUE5=0

    for (i=1; {i}<{_FILE_LINE_COUNT}; i={i}+1) {
      File parse line={i}
      Typeline "Line #{i}:"
      for (j=1; {j}<{_FILE_PARSE_COUNT}+1; j={j}+1) {
        Typeline " Value #{j}: {_FILE_PARSE_VALUE{j}}"
      }

      # Add the car price from column 5 to the sum
      Eval sum={sum}+{_FILE_PARSE_VALUE5}

      # As the parse command updates the Line var group with number of the last
      # processed line, this will alow us to skip lines with multiline values
      Var i={_FILE_LINE_NUMBER}
    }
    Typeline "Summary value: ${sum}"

    スクリプトが実行されると、デスクトップに次の出力が入力されます。
     
    Line #1:
      Value #1: 1997
      Value #2: Ford
      Value #3: E350
      Value #4: ac, abs, moon
      Value #5: 3000.00
    Line #2:
      Value #1: 1999
      Value #2: Chevy
      Value #3: Venture "Extended Edition"
      Value #4:
      Value #5: 4900.00
    Line #3:
      Value #1: 1999
      Value #2: Chevy
      Value #3: Venture "Extended Edition, Very Large"
      Value #4:
      Value #5: 5000.00
    Line #4:
      Value #1: 1996
      Value #2: Jeep
      Value #3: Grand Cherokee
      Value #4: MUST SELL!
    air, moon roof, loaded
      Value #5: 4799.00
    Summary value: $17699

    もう1つの例 :数字が1つ以上のスペースまたはタブで区切られたテキストファイルを作成しましょう:

    1 14 23 9 100
    117 5 7

    すべての数値の合計を "count"という変数に計算するには、通常、次のスクリプトを使用します。 データファイルはCSVではないため、Javaの正規表現「\ s」を使用する必要があります。

    File open file="C:\numbers.txt"
    Eval count=0
    Var _FILE_PARSE_COUNT=0 _FILE_PARSE_VALUE1=0

    for (i=1; {i}<{_FILE_LINE_COUNT}+1; i={i}+1) {
      File parse line={i} pattern="\s"
      for (j=1; {j}<{_FILE_PARSE_COUNT}+1; j={j}+1) {
         Eval count={count}+{_FILE_PARSE_VALUE{j}}
      }
    }



    File
    delete  [line=<line_number>] [column=<column_number>] [ length=<length_in_chars>] [id=<identifier>]
    *赤色は必須パラメータを示します  

    オプション
    line=<line_number>

    - 削除する行番号。 行番号が範囲外の場合、コマンドは失敗し、終了コードは4になります。

    column=<column_number>

    - テキストを削除する列(文字番号)。 番号は1から始まります。指定しない場合、コマンドは行の先頭から削除します(column = 1)。 列の文字数が行の文字数より大きい場合、コマンドは失敗し、終了コード4になります。

    length=<length_in_chars>

    - 削除する文字数を指定するオプションの長さ。 結果の削除領域は、テキスト行境界を超えている可能性があります。そのような場合、削除操作は終端の改行文字に適用され、その後に続く行に適用されます。 長さがファイルサイズを超えると、指定された位置以降のすべてのコンテンツファイルの内容が削除されます。 lengthパラメータが指定されていない場合、コマンドは改行文字を含む指定された行の末尾まで削除します。

    id=<identifier>

    - 読み込みおよび解析するファイルの識別子。 これは、 File open または create コマンドで 指定されたidと等しくなければなりません 。 スクリプトが1つのファイルをopen/createし、open/createコマンドでidが指定されていない場合は、パラメータを指定する必要はありません。

    戻り値
    コマンドは、テキストが見つかって正常に削除された場合は0(SUCCESS)を戻し、行と列のパラメーターがファイル内の有効な位置を指していない場合は4(INVALID_POSITION)を戻します。 コマンドは、削除されたテキストを_FILE_DELETED変数に保存します。 削除操作によってファイルのサイズが変更され、最終的に行数が変更さ れるため、Lineグループだけでなく Counter グループ からも変数が更新されます 。

    使用例

    File delete line="1"

    - 最初の行(改行文字を含む)を削除します。


    File delete line="2" length={_FILE_LENGTH}

    - 2行目からファイルの最後までをすべて削除し、最初の行だけを残します。

    for (i=1; {i}<{_FILE_LINE_COUNT}; i={i}+1) {
      File delete line={i} length=10
    }

    - 各行の最初の10文字を削除します。
     

    File read line=1
    File delete line="1" column={_FILE_LINE_LENGTH}+1 length=1

    - 最初の行の最後にある新しい行の文字を削除し、1行目と2行目を結合します。




    File
    close [id=<identifier>] [save=<true|false>]
    *赤色は必須パラメータを示します

    オプション
    save=<true|false>

    - Trueはファイルをファイルシステムに保存し、falseは変更を破棄します。 デフォルト値は "true"です。 ファイルは、スクリプトによって変更された場合、または別の出力ファイルが指定された場合にのみ保存されます。

    id=<identifier>

    - 閉じるファイルの識別子。 これは、 ファイルのオープン または 作成 コマンドで 指定されたidと 等しくなければなりません 。 スクリプトが1つのファイルをopen/createし、open/createコマンドでidが指定されていない場合は、パラメータを指定する必要はありません。

    戻り値
    0(成功)またはI/Oエラーで2(FAILED_TO_SAVE)を返します。 また、コンテキストからすべてのファイル固有の変数をクリアします。

    使用例

    File open file=test.txt
    ...
    File close

    - ファイルを閉じます。 コンテンツが変更されている場合は、変更をtest.txtファイルに保存します。


    File open file=test.txt outfile=test2.txt
    ...
    File close

    - ファイルを閉じます。 test.txtからロードされたコンテンツは、変更されているかどうかに関係なく、test2.txtに書き込まれます。

    File open file=test.txt id="testfile"
    ...
    File close id="testfile" save=false

    - ファイルを閉じて、最終的な変更を破棄します。 "testfile" IDは "File open"のファイルに割り当てられているので、 "File close"と "File close"の両方で指定する必要があります。



    4. イメージ比較機能



    4.1 イメージ比較の概要

    イメージ比較メソッド は、接続されたデスクトップの画像を分析するアルゴリズム/技術です。 これらはテストスクリプトで使用され、デスクトップの内容を確認し、GUIコンポーネントやテキストなどの比較対象を取り出し、その結果に基づいて動作します。 ほとんどのメソッドは、1つまたは複数のイメージファイル( 「テンプレートイメージ」 )およびイメージフォルダ( 「テンプレートイメージコレクション」 )で動作します。 これらの成果物は、 イメージコレクション 画像メタデータ の章で 詳しく説明されています。

    イメージ比較メソッドのプラグインは、以下の3つの スクリプト言語コマンド とその Javaメソッドの対応 言語と密接に統合されています。 これらは、通常 ホスティングコマンドまたはJavaメソッド と呼ばれる比較メソッドのコンテキストにあります。

    コマンド Javaメソッド
    説明
    Compareto compareTo() 現在選択されているデスクトップに選択した画像比較方法を一度適用します。
    通常、コンポーネントの存在を検証したり、座標を取得し
    たり、テキスト を取得し たり、画面の内容が予期されるかどうかを検証するために使用されます。
    Screenshot screenShot() リモートデスクトップのスクリーンショットをファイルに保存し、オプションで
    Comparetoコマンドの内部呼び出しによって選択したイメージ比較メソッドを適用します。
    Waitfor match/mismatch waitForMatch()
    waitForMismatch()
    選択したイメージ比較メソッドが「成功」(戻りコード0) の結果を生成するまで ( match「一致」 ) または mismatch「不一致」 まで実行を一時停止し ます。 通常は、期待されるコンポーネントまたはテキストが画面に表示されるか、画面から消えるまで 待機するために使用され ます。



    各比較方法は、一意の 名前 コード とも呼ばれます)(たとえば、 「search2」 または 「object」 ) によって識別されます。 コマンドフレームワークによってサポートされて いる標準の "passrate" および "cmparea" パラメータに加えて、各メソッドは特定のアルゴリズムに特有の任意の数のオプションパラメータを宣言することができます。 これらのパラメータは、呼び出しコマンドで表示されます。

    すべての画像比較メソッドがプラグインとして内部的に実装されているため、ユーザーはカスタムアルゴリズムを自由に開発し、スクリプト言語とJava Test Script APIに統合することができます。 詳細については、 ImageComparisonModule インタフェースを参照してください。

    次の例では、最も頻繁に使用される 'search2'アルゴリズムを、すべてのフレームワークで提供される 'passrate' 'cmparea' 、それの特有なパラメータ 'order'とともに示します。

    Compareto                   "buttonOk.png" passrate="70" method="search2" cmparea="x:258,y:114,w:417,h:298" sort="none"
    Screenshot "s.jpg" template="buttonOk.png" passrate="70" method="search2" cmparea="x:258,y:114,w:417,h:298" sort="none"
    Waitfor    "match" template="buttonOk.png" passrate="70" method="search2" cmparea="x:258,y:114,w:417,h:298" sort="none"

    Javaテストスクリプト の形式の同じ例 :

    compareTo(new File[] { new File( "buttonOk.png" ) }, 70.0f, new Rectangle(258, 114, 417, 298), "none" );
    screenshot(new File( "s.jpg" ), (String) null , (Rectangle) null , new File[] { new File( "buttonOk.png" ) }, 70.0f, new Rectangle(258, 114, 417, 298), "none" , false);
    waitForMatch(new File[] { new File( "buttonOk.png" ) }, 70.0f, (String) null , new Rectangle(258, 114, 417, 298), (String) null , "none" , (String) null);

    一般的な方法で失敗したイメージの比較を処理するためのメカニズムが2つ組み込まれています。
    1. ComparisonFailureFallback は、(V2.3以降)の手順をフォールバックします。
    2. イメージドクター ウィザードと Imagedoctor コマンド (V3.5以降)で利用します。

    4.1.1 イメージコレクション

    イメージコレクションは、様々な視覚的外観または単一のグラフィックオブジェクトの状態、例えば様々な環境およびオペレーティングシステム上のボタンの状態をキャプチャした画像を示します。 コレクションは、 CompareTo Screenshot および WaitFor match/mismatch スクリプト言語コマンドまたは対応するJavaメソッドによって使用され、すべての環境で画面上のコンポーネントをシームレスに見つけることができます。

    HeartCore Robo Desktopバージョン2.0以降では、 セミコロンで区切られたイメージファイルリスト を使用してイメージコレクションを サポートしています。 例えば、二つのテンプレート画像に代表される「OK」ボタンを検索する buttonOK1.pngbuttonOK2.png がある場合、 テンプレートフォルダは次のものを使用します:

    Compareto "buttonOK1.png;buttonOK2.png" method=search

    HeartCore Robo Desktopバージョン2.2では、 フォルダ によって表される動的イメージコレクションが導入されています。 このメカニズムにより、テストスクリプトコードを更新することなくテンプレート画像を動的に追加、削除、編集することができます。 各フォルダは、ロスレスフォーマット(PNG、BMP、WBMP、GIF)のJavaサポートされたイメージに対して再帰的に検索され、生成されたイメージリストに対して指定された イメージ比較アクションが実行されます。

    たとえば、前の例の画像を呼び出されたフォルダbuttonOKに移動し、コマンドを次のように変更することができます。

    Compareto "buttonOK" method=search

    フォルダから取得されたイメージは、デフォルトで、基本となるオペレーティングシステムによって返された自然順序で処理されます。 バージョン2.3.3では、この動作を変更してイメージを比較する前にソートすることを可能にする新しいオプションのメカニズムが導入されました。
    1. デフォルトの並べ替えモードを設定するには、環境設定ウィンドウの CompareToコマンド パネルを 参照してください。 この設定は、次の箇条書きで説明するように、スクリプトによってソートモードが無効にされない限り、アプリケーション全体で使用されます。
    2. スクリプトは、 _COMPARETO_SORT_MODE 変数を目的のソートモードインデックスに 設定することによって、ソートモードを設定できます。 変数はスイッチとして機能し、変数がリセットされるかスクリプトの終わりに達するまで、すべての比較コマンドによってソートモードが適用されます。 許容できる値は次のとおりです。
    0 -画像ファイル名(昇順)によるソート
    1 -画像ファイル名(降順)によるソート
    2 -画像ファイルの最終更新日(昇順)によるソート
    3 -画像ファイルの最終更新日(降順)によるソート

    、例:
    前の例の画像をファイル名の降順( buttonOK2.png が最初)で処理する:
    Var _COMPARETO_SORT_MODE=1
    Compareto "buttonOK" method=search


    ソートモードをデフォルトにリセットするには、変数を空の文字列に設定するだけです。
     Var _COMPARETO_SORT_MODE=

    イメージコレクションは、imageとimage_collectionからなるファイルリストに自由に組み合わせることができます。 たとえば buttonApprove1.pngbuttonApprove2.png 画像で 表される「OK」ボタンまたは「Approve」ボタンを検索するには、次の ようにします。

    Compareto "buttonOK;buttonApprove1.png;buttonApprove2.png" method=search

    または、 buttonApprove 書き込むことができる2つのイメージのために 呼び出されたフォルダを作成します 。

    Compareto "buttonOK;buttonApprove" method=search


    4.1.2 画像メタデータ

    HeartCore Robo Desktopバージョン2.2以上では、 ソース座標 クリックポイント などのイメージメタデータを含むテキストファイルを追加して、テンプレートイメージをハードドライブに保存します。 イメージがイメージ比較に使用されるときはいつでも、データはロードされ、事前定義された変数の形でテストスクリプトで利用可能になります。

    メタデータファイルはJavaの.properties形式であり、その名前はイメージファイル(通常<imagefile>。<formatextension> .properties)から取得されます。 GUIを使用すると、以前のバージョンまたはサードパーティのイメージエディタで作成された既存のテンプレートのメタデータファイルを作成できます。 ただし、ソース座標は失われているので、この場合のGUIではクリックポイントのみを編集して保存することができます。

    ソース座標 テンプレート作成時に元の座標をデスクトップイメージに保存します。 それらは、_COMPARETO_SOURCE_Xおよび_COMPARETO_SOURCE_Y変数を介してスクリプトに公開されます。 これらの変数は、メタデータファイルが使用できない場合、またはデータが入力されない場合(v2.2より前に作成されたテンプレートまたはサードパーティのツールを使用して作成された場合)は設定されません。

    ソース座標を使用すると、オブジェクトが画面上を移動したかどうかをテストするアクションを記述できます。 このアクションの典型的なコードは次のとおりです。

    Compareto "buttonOK" method=search
    if ("{_COMPARETO_SOURCE_X}" != "{_SEARCH_X}" && "{_COMPARETO_SOURCE_Y}" != "{_SEARCH_Y}") {
        # Object has moved
        ...
    }

    Click Point は、クリック、プレス、リリース、ドラッグなど、最終的なマウス操作に最適な場所を表します。 ポイントはデフォルトでイメージセンターになりますが、テンプレートイメージの四角形の内側または外側の任意の場所を指すようにカスタマイズすることができます。 クリックポイントの座標は、テンプレート画像の左上隅から相対座標で内部に格納されます。

    クリックポイントの使用はイメージ検索のみで意味があります。 オブジェクトを画面上に配置すると、クリック点を絶対座標に再計算し、それらを_COMPARETO_CLICK_Xおよび_COMPARETO_CLICK_Y変数の下に格納します。 メタデータファイルが存在しない場合(v2.2より前に作成されたテンプレート)、変数も使用でき、デフォルトでイメージセンターに保存されます。 次のコードスニペットは、オブジェクトを検索し、成功するとそのクリックポイントをクリックします。

    Compareto "buttonOK" method=search
    if ({_EXIT_CODE} == 0) {
        Mouse click to="x:{_COMPARETO_CLICK_X},y:{_COMPARETO_CLICK_Y}"
    }


    4.1.3 イメージ比較の推奨事項

    大部分の画像比較方法の信頼性は、画素レベルで画像差を生じる要因によって減少します。 これらの影響を最小限に抑えるには、次のヒントを考慮してください。

    4.2 イメージ検索メソッド

    イメージ検索メソッドは、テンプレート画像、 画像収集 、またはサイズ、色、または形状などのオブジェクトパラメータに 基づいて、オブジェクト(構成要素)について画面を検索します 。 このメソッドは、通常、指定されたオブジェクトが検出された画面上の位置および/または矩形のリストを返します。 このメソッドグループは、 「ボタンを見つけてクリックする」 「コンポーネントが画面に表示されていることを確認する」などのアクションを自動化するためによく使用されます。

    HeartCore Robo Desktop 4.4でサポートされている画像検索方法は次のとおりです。

    1. イメージ検索V2 (コード"search2")メソッドは、テンプレート画像とコレクションによって、コンポーネントの画面を検索します。 このアルゴリズムは、3つの検索モード(正確、耐性およびファジィ)と、最も低い差または位置による結果の順序付けを特徴とします。
    2. イメージ検索 (コード"search")メソッドはV2アルゴリズムの古いバージョンです。 また、テンプレート画像と少数の画像の変更に対する許容範囲が限定されたコレクションによって、コンポーネントの画面を検索することもできます。
    3. オブジェクト検索 (コード"object")メソッドは、カラー、サイズおよび任意のサンプルテンプレート画像によってオブジェクトを配置します。 このアルゴリズムは、オブジェクトの回転したインスタンスを探索することができ、最終的なオブジェクトの重なりに対して一定のロバスト性を提供します。 この方法は、アプリケーションのGUI自動化には適しておらず、むしろGIS出力、マップ、チャートなどのグラフィカルシステムの分析を対象としています。

    4.2.1 イメージ検索V2( "search2")


    説明
    トップ^

    イメージ検索V2 (コード "search2"、 V3.0以降)は、1つまたはそれ以上のテンプレート画像及びイメージコレクションで記録されているオブジェクト等をデスクトップ画面で検索します。 これは通常 、デスクトップ画面 の内容の検証(「オブジェクトが表示されていることを確認する」) 、後続のマウスやキーボードの操作 (「イメージ検索してClickまたはDrag」、「イメージ検索してPress/Type」 、など)に利用できます。 'search2'アルゴリズムは、古い世代であるイメージ検索方法('search')から以下が改善されました。


    1. 使いやすさ - アイコンなどの小さなデスクトップイメージの変更に対する許容範囲を制御する唯一のパラメータとして 'passrate' があります。 デフォルト値は50%に設定されており、デスクトップアプリケーションレベルなどの自動化が難しいと考えられる環境(Flashアプリケーションなど)を含むほとんどの環境で、信頼性の高い検索をすぐに実行できます。
    2. 高速なパフォーマンス - passrate パラメータの 値が小さい場合でも検索が大幅に高速に動作し ます。 またアルゴリズムは画像ピクセルのコピーを避け、デスクトップバッファで直接動作するので、他の同様の方法よりも最大90%少ないメモリで動作します。
    3. 結果のソート - ベストマッチによる結果(マッチング位置)のデフォルトのソートでは、 passrate 値が低すぎて複数のファジーマッチが生成された場合でも、最初にマッチングする場所が常にレポートされます。 これにより、最初の一致(最も正しい可能性が高い)で作業し、他の類似マッチングオブジェクトを無視することができます。
    4. スケーリングされたイメージの検索 - リリース4.0で導入されたscaleパラメータは、入力コンポーネントイメージのスケーリングされたインスタンスを検索します。 これにより、さまざまな解像度(Android、iOSなど)のデバイス間での単一の検索を再利用できます。
    得られた一致座標の位置データは、 _SEARCH_ 接頭辞付き変数の セットの形で呼び出しスクリプトに公開され ます。 このシステムは以前の 'search' メソッドと互換性があります。

    メソッドが作成した変数 説明
    _SEARCH_MATCH_COUNT = <number> オブジェクト検索によって特定された一致するロケーションの数。
    _SEARCH_X_ <n> = <X座標>
    _SEARCH_Y_ <n> = <Y座標>
    "n"が
    1と_SEARCH_MATCH_COUNTの間にある n番目の一致位置のX、Y座標 。
    _SEARCH_X = <X座標>
    _SEARCH_Y = <Y座標>
    最初の一致位置のX、Y座標(
    _SEARCH_X_1および_SEARCH_Y_1の 同義語 )。

    一致する場所の幅と高さを取得するには 、ホスティングコマンドまたはJavaメソッド呼び出しによって設定された _COMPARETO_TEMPLATE_WIDTH および_COMPARETO_TEMPLATE_HEIGHT変数を 使用します。 このメソッドは、透明/半透明のテンプレートイメージと"removebg""bgcolor""minalpha"および"tolerance""search" 固有パラメータで は処理できません 。 この機能が必要な場合は、 代わりに「search」メソッドを使用してください。



    v4.4以降、メソッドは一致する場所の数に制限を設定することができます。 これは、「最初のN回の出現を検出して停止する」などのシナリオをサポートすることを目的としています。この場合、完全なデスクトップ検索では一致が多すぎるか、時間がかかります。 スクリプトからの制限を設定するには 、Varコマンド を使用して _SEARCH2_MATCH_LIMIT 変数 を設定します 。 リセットするには、変数を空の値に設定します。 たとえば、値が1の場合、最初に一致する場所で検索が停止します。
    // Set the match limit to 1
    Var _SEARCH2_MATCH_LIMIT=1
    Compareto comp.png method=search2

    // Reset the match limit
    Var _SEARCH2_MATCH_LIMIT=1

    オプション


    このメソッドは 、ホスティングコマンドまたはJavaメソッド呼び出しによって指定された 1つ以上の テンプレートイメージ または イメージコレクション を必要 とします。

    文脈において 、「search2」 メソッドのパラメータ 'passrate'は テンプレート画像とスクリーンの対応する位置との間に必要な最小の類似性を特定します。 デフォルト値は50%で、ほとんどの場合、高いパフォーマンス/正確さを保証します。 低コントラストの環境など、あまりにも多くのマッチ画像がヒットする場合には合格率を高いレベルに設定します。 最高のパフォーマンスを得るには、合格率を100%に設定します。

    'cmparea' を省略する場合、パラメータは、フルスクリーンオプションで、デフォルトです。

    このメソッドは、次の2つの特定のパラメータをサポートしています。

    sort=<best|none|top|bottom|left|right>
    - 結果ソートモード(オプション)、次のいずれか:
    • 'best' - 最もよく一致する場所(最も低い相違点を持つ最も一致する場所)で並べ替えます。 同じ差分値を持つ場所は、自然な読み上げ順序(左から右、上から下)でソートされます。 このモードは、パラメータが指定されていない場合のデフォルトモードです。
    • "none" - 結果を並べ替えたり、結果を自然な "読み取り"の順序(左から右、上から下)にしないでください。 このモードでは、従来の 「検索」 メソッド と同じ順序が生成され ます。
    • "top" - 上から下にソートします(一番上から順に)。
    • "bottom" - 下から上(下から上)にソートされます。
    • "left" - 左から右(左端)からソートします。
    • "right" - 右から左(最初の一番右)から順にソートします。
    scale=<float_number(s)>
    - 'scale'は、4.0以降でサポートされているオプションのパラメータです。 これは、入力画像のスケーリングされたインスタンスを検索することを可能にします。 値は、単一の浮動小数点数(倍率)またはセミコロン ';' 分割された数字のリストとなります。 より多くの数字がある場合、マッチが生成されるか、リストが使い果たされるまで、指定された順序で処理されます。

    'scale'をオフに設定するには、値1を使用します。値がゼロより大きい場合は、スケール比として扱われます。 たとえば、2.0の値では、幅と高さが2倍に拡大されたコンポーネントを検索します。

    動的スケーリングを使用するために指定できる2つの負の定数があります。 現在のデスクトップ解像度と、テンプレート(コンポーネント)イメージが作成されたデスクトップのサイズとの差に関して、入力イメージを拡大/縮小します。 Version 3.x以前はデスクトップの解像度をテンプレートのメタデータに保存しなかったため、この操作を可能にするには、画像をHeartCore Robo Desktop4.4で作成または更新する必要があります。 古いイメージを更新するには、元のデスクトップに接続するには、 プロジェクトビュー でテンプレートを右クリックし、[ イメージプロパティの更新 ]を選択します。

    サポートされるスケールモードは次のとおりです。
    • -1 (stretch mode「ストレッチモード」)は、デスクトップの幅と高さの変更に続いて入力画像を拡大/縮小します。 結果として得られる画像は、同じ幅と高さの比率(幅/高さの比率)を持っていてもいなくても問題ありません。
    • -2 (proportional scale mode「比例スケールモード」)は、デスクトップの幅と高さの相対的な変化を小さくし、幅と高さの両方のスケーリングに使用します。 結果として得られる画像は、同じ比率(幅/高さの比率)を持ちます。

    戻り値

    この方法は、少なくとも1つの一致する場所が入力されたテンプレート画像の少なくとも一方のために発見された場合、呼び出すコマンド(メソッド呼び出し)にリターン0(成功)を返します。 それ以外の場合は1の値を返します。

    トラブルシューティング

    失敗した "search2" 比較 を処理するには :
    • スクリプトが検索に失敗した後に終了するように設計されている場合は、ロスレスフォーマット(PNGまたはBMP)でスクリーンショットを作成することをお勧めします。 そのようなコードの例を下の例に示します。 これにより 、ログインダイアログ 「スタティックイメージクライアント」 または 比較コマンド/メソッドコールプロパティウィンドウの「RDイメージをロード」ボタンを使用し てスクリーンショットを読み込んだ後、失敗した比較を再現してデバッグすることができます 。
    • 画像の変化に対する許容範囲を広げるには、単に合格率を下げるだけです。 曖昧なレベルに設定することを恐れてはいけませんが 、正しいコンポーネントの場所が最初に報告されることをGUIの "比較"ボタン で 確認してください。 合格率を変更しても検索を修正することができない場合は、別のテンプレートイメージを作成し、それをテンプレートリストまたは イメージコレクションに 追加し ます。
    • 比較の失敗を引き起こす最も一般的な要因については、「 イメージ比較の推奨事項 」の章を参照してください 。
    • 明白な理由がない場合、検索が失敗した場合は、画像テンプレートとともにスクリーンショットを HeartCore Robo Desktopサポート に送付いただけると今後のサポートに役立てることができます。


    使用例

    Compareto buttonOk.png  method="search2" passrate="90" sort="bottom"

    if ({_EXIT_CODE} > 0) {
      Screenshot
    failure.png
    desc="Failed to find the OK button."
      Exit 1 desc="Failed to find the OK button."
    }
    else {
     
    Mouse click to=x:{_SEARCH_X},y:{_SEARCH_Y}
    }

    - 一番下のOKボタンを検索してクリックします。 ボタンが見つからない場合は、スクリーンショットを終了し、終了コード1でスクリプトを終了します。

    // Search for the buttons and click every single one
    Compareto "button.png" passrate="100" method="search2"
    if ({_EXIT_CODE} == 0) {
        for (i=1; {i}<{_SEARCH_MATCH_COUNT}+1; i={i}+1) {
            Mouse click to=x:{_SEARCH_X_{i}},y:{_SEARCH_Y_{i}} wait=1s
        }
    }

    // Wait 15 seconds for the buttons to disappear or change their state
    Waitfor "mismatch" method="search2" passrate="100" template="button.png" timeout="15s"
    if ({_EXIT_CODE} > 0) {
        Exit 1 desc="Some buildings failed to turn the state!"
    }

    - 複数のボタンを画面で検索し、すべてのボタンをクリックします。 すべてのボタンが消えたり、状態が変わったら画面を確認してください。


    // Find the scroll button
    Compareto "scrollbutton.png" method="search2"
    if ({_EXIT_CODE} > 0) {
        Exit 1 desc="Failed to locate the scroll button!"
    }

    // Save its coordinates to the X, Y variables
    Var X={_COMPARETO_CLICK_X} Y={_COMPARETO_CLICK_Y}

    // Iterate 100 loops
    for (i=0; {i}<100; i={i}+1) {
        // Click the scroll button
        Mouse "click" to="x:{_COMPARETO_CLICK_X},y:{_COMPARETO_CLICK_Y}"

        // Check if the component is visible on the screen. We use Waitfor
        // because the page may take time to scroll and update on the screen
        Waitfor match template="component.png" method="search2" timeout=3s
        if ({_EXIT_CODE} == 0) {
            // Found -> break the for loop
            break
        }

        // Last loop #99 -> component not found, terminate the script
        if ({i} == 99) {
            Exit 2 desc="Failed to scroll to the component!"
        }
    }

    - スクロールされたページ(ウィンドウ)に表示されるコンポーネントを検索する方法の例。 この例では、スクロールダウンボタンをクリックしたまま、コンポーネントがループしているかどうかを確認しています。 スクロールボタンをクリックするタスクは、最終的にPgDownキーを押すことで置き換えられます。



    4.2.2 イメージ検索('search')


    説明
    トップ^

    イメージ検索 (コード 'search' )は、1つ以上のテンプレート画像又は イメージコレクション を元にコンポーネントやオブジェクトをデスクトップ画面から検索します。 これは通常 、デスクトップ画面 の内容の確認(「オブジェクトが表示されていることを確認する」) 、後続のマウスやキーボードの操作 (クリックまたはドラッグ、プレス 、ホイールなど)を行います。

    この方法では、3つの独立した公差のメカニズムを持つプレーンピクセル比較を使用します。
    1. ピクセルベースの公差 は、アルゴリズムがテンプレート画像とは多少異なるピクセル量の差を持ったオブジェクトを探索するようにします。 これは 、合致するのに必要なピクセルのパーセンテージを'passrate' パラメータ によって設定します。 テンプレートイメージのサイズがたとえば10x10(100ピクセル)で、通過率を99%に指定した場合、アルゴリズムは最大1つの異なるピクセルを持つすべての一致する場所を検索します。 指定した通過率が低いほど、パフォーマンスが低下し、検索にかかる時間が長くなることに注意してください。
    2. RGB許容差 がv2.2で導入されました。 許容差を "tolerance" パラメータ0〜256の整数で設定します。 デスクトップピクセルの赤、緑、青の成分が、対応するテンプレートピクセルと同等であるとみなすために最大でどのくらい異なるかを示します。 この値は、例えば画像を背景とぼかしたり合成したりするなどして、ピクセルがわずかに変化する画像を扱うことを可能にします。 このような動作は、アプリケーションが更新されるときに装飾的なテキストや一部の画像が一定の方法でレンダリングされないFlashアプリケーションで報告されています。 許容値が高いほど、誤一致検出の可能性が高くなることに注意してください。 ほとんどのシナリオでは、値はぼかしレベルに応じて[0、100]の範囲内にある必要があります。
    3. 透明度/半透明度に基づく許容差 により、テンプレート画像の特定のピクセルを無視することができます。 画像検索アルゴリズムは、最小Alphaパラメータ( minalpha)で 指定された半透明成分のAlpha値を下回る透明または半透明(部分的に透明)のピクセルをすべて "合格"としてカウントします 。 たとえば、100ピクセルのテンプレートに90の透明ピクセルが含まれ、最小のアルファが0xFFに設定されている場合(完全に不透明なピクセルのみを検索する場合)、残りの10ピクセルはデスクトップイメージと比較されます。

      透明性は、背景やコンポーネントの色の変化に対して堅牢な画像比較を構築する強力な方法です。 たとえば、リモートデスクトップでレンダリングされたアイコンを検索する場合、アイコンテンプレートの背景色のピクセルを透明にすると、リモートデスクトップの色の変化に関係なく、イメージの比較が確実に行われます。 テンプレート画像は、重要でないピクセルを取り除き、検索されたオブジェクトの骨格だけを残すために、一般的な画像エディタで編集することができる。 これは、地理情報システム(GIS)など、不安定なオブジェクトレンダリングを伴う特定のタイプのアプリケーションをテストする唯一の方法です。
    HeartCore Robo Desktopバージョン2.1以降では 、removebgおよびbgcolorパラメータを使用 して バックグラウンドの自動透過 を サポートしてい ます。 サードパーティのエディタで画像を編集することなくテンプレート画像の背景を無視することができます。 このアルゴリズムは、入力上に不透明なテンプレート画像(透明度のない画像を意味する)を受け入れ、内部透明フィルタを適用して、背景に等しいかまたは似ているすべてのピクセルを除去します。 背景色のデフォルトは最初のテンプレート画像ピクセルですが、bgcolor パラメータで 明示的に指定することもできます。 自動透過性(Automatic transparency)はGUIを通して、特に テンプレートイメージエディター CompareToウィンドウ に記述されている比較GUIコンポーネントです。

    サードパーティーの画像エディタなどを使用して、テンプレート画像に透明性を導入することもできます。 たとえば、WindowsとLinux / Unixのユーザーは、Gimpを利用して以下のように透明度を設定することができます:
    1. Gimpでテンプレート画像を開く
    2. レイヤー」→「透明」→「カラーからアルファ」を選択し ます。
    3. 透明な色を選択します。 これは通常、Gimp(白い背景色)によって提供されるデフォルト値のままにしておくと問題なく動作します。
    4. テンプレートイメージをファイルに保存します。
    5. テンプレートイメージエディタで再テストし ます。 画像に背景色に非常に近い色しか含まれていない場合、Gimpはすべてのピクセルを透明または半透明にして、テンプレートをデフォルトの minalpha 値 で画像検索に使用できなくする可能性があるため です。 テンプレート画像エディタは、そのようなケースを検出し、画像検索パラメータの変更を提案することができます。
    結果として得られるマッチ位置の座標は、 _SEARCH_ 接頭辞付き変数セットの形で呼び出しスクリプトに公開され ます。

    メソッドが作成した変数 説明
    _SEARCH_MATCH_COUNT=<数値> オブジェクト検索によって特定された一致するロケーションの数。
    _SEARCH_X_ <n>=<X座標>
    _SEARCH_Y_ <n>=<Y座標>
    "n"が
    1と_SEARCH_MATCH_COUNTの間にある n番目の一致位置のX、Y座標 。
    _SEARCH_X=<X座標>
    _SEARCH_Y =<Y座標>
    最初の一致位置のX、Y座標(
    _SEARCH_X_1および_SEARCH_Y_1の 同義語 )。

    一致する場所の幅と高さを取得するには 、ホストコマンドまたはJavaメソッド呼び出しによって設定された _COMPARETO_TEMPLATE_WIDTH および_COMPARETO_TEMPLATE_HEIGHT変数を使用します。 一致位置の数はComparetoコマンド設定のパラメータによって制限され、最大値に達すると検索が停止することに注意してください。

    オプション


    このメソッドは 、hostingコマンドまたはJavaメソッド呼び出しによって指定された 1つ以上の テンプレートイメージ および/または イメージコレクション を必要 とします。 "passrate" のパラメータは 、テンプレート画像とスクリーンマッチ位置との間で正確に一致しなければならないピクセルの最小比率を 'search' メソッドのルールで指定します 。 デフォルト値は100%です(ピクセル差分は許容されません)。 "cmparea" を省略する場合、パラメータは、フルスクリーンがデフォルトです。

    サポートされている特定のパラメータ:

    tolerance=<0-255>
    - tolerance パラメータは、 RGB公差 をコントロールし、色の変化許容値を 0〜255の整数で設定します。 ここで、0は許容差(完全一致)を表し、255は最大許容値を表します。 これは、デスクトップピクセルの赤、緑、青の成分が、対応するテンプレートピクセルと同等であるとみなすために最大でどのくらい異なるかを示します。 高い許容値は、誤った一致検出の確率を上げていきます。

    このパラメータは、例えば画像を背景とぼかしたり合成したりすることによって、画素がわずかに変化する画像を扱うことを可能にします。 このような動作は、装飾的なテキストや一部の画像でさえも一定の時間内にレンダリングされないFlashアプリケーションで報告されています。 ほとんどのシナリオでは、値はぼかしレベルに応じて[0、100]の範囲内にある必要があります。 パラメータを指定しない場合、デフォルトは0になり、アルゴリズムは正確なカラーマッチを使用してピクセルを比較します。

    removebg=<true | false>
    removebg のパラメータは、 バックグラウンドでの自動透明度を (オン "true" )または(オフ "false" )で設定します。 "true" の値は 、テンプレート画像の背景色を無視するための自動透過を適用します。 テンプレート画像(またはテンプレート画像)に既に透明または半透明のピクセルが含まれている場合、背景フィルタは適用されず、このパラメータおよび bgcolor は無視されます。 デフォルト値は "false" (バックグラウンドフィルタはオフ)です。

    bgcolor=<HTMLColor>
    bgcolor パラメータはオプションです。 自動透明化するためにバックグラウンドのカスタム背景色を定義することができます。 removebg のパラメーターでは、白の場合は "ffffff"、黒の場合は "000000"のように、HTMLのような記法でRGBを受け入れます。 値は6文字でなければならず、各R、G、B成分は2桁の16進数(00〜ff)の形式で指定されていなければなりません。 bgcolor が指定されていない場合、最初のテンプレート画像ピクセル(左上の画像コーナー)から背景色を選択します。

    minalpha
    minalpha パラメータは、半透明の許容範囲を設定します。 これは、 既存の透明または半透明のピクセルを持つテンプレートだけでなく 、 removebg フィルタ によってフィルタリングされた画像にも適用できます 。 デフォルト値255は、完全に不透明なピクセルだけを比較し、すべての透明または半透明の(半透明の)ピクセルを無視するよう検索アルゴリズムに指示します。 値が255より小さい場合は、アルファ成分が指定されたリミット以上の半透明ピクセルでもアルゴリズムが比較されます。

    最小のアルファパラメータは、バックグラウンドカラーフィルタがあまりにも多くのピクセルを作成するか、またはそれらのすべてを透明または半透明にする状況を解決するためのものです。 これにより、検索アルゴリズムは少数の不透明ピクセルと比較され、通常はヒットしない一致結果につながります。 アルファ限界を下げると、比較可能なピクセル数が増えるので、画像検索アルゴリズムの一致度を向上させるために使用することができます。 ただし、半透明ピクセルの比較は色の類似性に基づいているため、従来の画像検索よりも大幅にパフォーマンスが低下し、最小値が極端に低いと予期しない一致結果が生じる可能性があることに注意してください。

    戻り値

    テンプレート画像の少なくとも1つの一致する場所が入力された場合に呼び出したコマンド(メソッド呼び出し)内の変数へ0(成功)を返します。 それ以外の場合は1の値を返します。

    トラブルシューティング

    失敗した “search” の結果を処理するには :
    • スクリプトが検索に失敗した後に終了するように設計されている場合は、ロスレスフォーマット(PNGまたはBMP)でスクリーンショットを作成することをお勧めします。 そのようなコードの例を下の例に示します。 これにより 、ログインダイアログ 「スタティックイメージクライアント」 または searchコマンド/メソッドのコールプロパティウィンドウの「RDイメージをロード」ボタンを使用してスクリーンショットを読み込んだ後、失敗した比較を再現してデバッグすることができます。
    • 合格するまで合格率を下げるか、RGB許容差パラメータ( 「許容差」 )を上げて 「比較」ボタンを押し てテストし ます。 パラメータが検索結果を修正できないようであれば、代替テンプレートイメージを作成しそれをテンプレートリストまたは イメージコレクションに 追加し ます。
    • 比較の失敗を引き起こす最も一般的な要因については、「 画像比較の推奨事項 」の章を参照してください 。
    • 明白な理由がない場合、検索が失敗した場合は、画像テンプレートとともにスクリーンショットをHeartCoreRobo Desktopサポートに送付いただけると助かります。


    使用例

    Compareto buttonOk.png  method="search" tolerance="50"

    if ({_EXIT_CODE} > 0) {
      Screenshot
    failure.png
    desc="Failed to find the OK button."
      Exit 1 desc="Failed to find the OK button."
    }
    else {
     
    Mouse click to=x:{_SEARCH_X},y:{_SEARCH_Y}
    }

    - [OK]ボタンを検索してクリックします。 ボタンが見つからない場合は、スクリーンショットを終了し、終了コード1でスクリプトを終了します。

    より多くの コンポーネント検索の例 については、'search2'メソッドの仕様を参照してください 。


    4.2.3オブジェクト検索(「オブジェクト」)


    説明
    トップ^

    オブジェクト検索 (コード 'object' )は、特定のRGBの範囲内の特定の色または色のオブジェクトを配置します。 また、最終的なオブジェクトの回転を検出して、オプションのテンプレートイメージでオブジェクトリストをフィルタリングすることもできます。 このメソッドは 、「画面に特定の色が含まれているかどうかをテストする」、「画面上のすべての赤いオブジェクトを見つける」、「画面上の回転したすべての黒い三角形やその他の形を見つける」などの 単純な画像解析 タスク を処理するように設計されています 。

    メソッドは常に可能な限り大きなオブジェクトを探し出し、他のオブジェクトが含まれているかどうかを再帰的に検索しないため、このアプローチはフレーム化、オーバーレイ化、マージされた古典的なGUIコンポーネントには適していません。 しかしながら、この方法は 、例えば、地理情報システム(GIS)アプリケーションによって生成された低カラーシーン の スキーム、マップ および画像の テストにおいて非常に良好に 機能し、 単純な画像データを生成するシステムです。 この方法は、例えば、「この特定の領域に赤いメッセージがありますか?」などの質問に答えるために、特定の色または色範囲のオブジェクトが画面上に存在するかどうかをチェックするためにも使用できます。

    アルゴリズムはまず、入力カラー基準を満たす最初のピクセルの画像をスキャンします。 次に、そのようなオブジェクトのそれぞれの外形に沿って、その境界矩形を変数のセットの形でコンテキストに格納します。

    メソッドが作成した変数 説明
    _OBJECT_COUNT = <数値> オブジェクト検索によって識別されたオブジェクトの数。
    _OBJECT_X_ <n> = <X座標>
    _OBJECT_Y_ <n> = <Y座標>
    _OBJECT_W_ <n> = <幅>
    _OBJECT_H_ <n> = <高さ>


    _OBJECT_COUNT"<n>"の変数中でn番目のオブジェクト間にあるX、Y座標と幅と高さ 。
    _OBJECT_X_ <n> = <X座標>
    _OBJECT_Y_ <n> = <Y座標>

    _OBJECT_COUNT"<n>"の変数中でn番目のオブジェクト中心のX、Y座標 。
    3.4以降でサポートされています。

    オブジェクトをより正確に記述する オリジナルのシェイプ( java.awt.Shape インスタンス)は、 getContext()、getObjectSearchShapes() メソッドを 使用してJavaテストスクリプトだけで使用できます 。

    オプション


    このメソッドは、オプションで 、ホスティングコマンドまたはJavaメソッド呼び出しによって指定された 1つの テンプレートイメージ を受け入れます。

    "passrate" パラメータは、唯一の役割を果たし 、'object' メソッドは、テンプレート画像と呼ばれます。 画像は、任意の回転レベルで指定された色(色範囲)のちょうど1つの形状を含まなければいけません。 color "パラメータ によって識別されるオブジェクトのリストは 、 passrate パラメータ によって指定された比率まで、テンプレートイメージの形に似ている形だけを残すようにフィルタリングされます。 もし "rotations" パラメータも指定されていて1より大きい場合、指定された回数回転したテンプレートシェイプのリストに対しオブジェクトリストが一致します。 テンプレートイメージが指定されていない場合、メソッドは、 passrate 値に関係なく、指定されたcolorおよびsizeパラメータに一致するすべてのオブジェクトを探します。

    "cmparea" パラメータはオプションで省略された場合はデフォルトでフルスクリーンになります。

    サポートされている特定のパラメータ:

    color=<HTMLColor>

    color パラメータは、(黒い「FFFFFF」、白色が「000000」である)HTML形式の6文字RGB16進数形式でオブジェクトの色を定義します。 パラメータを指定しないと、デフォルトで黒になります。

    tolerance=<0-255>
    "tolerance" パラメータは、RGB許容差(RGBtolerance)と同様であり、0と255の間の任意の整数を指定する、 イメージ検索 方法です。 これは、ピクセルの赤、緑、青成分を色指定したオブジェクトの色に相当するオブジェクトが最大で異なる可能性がどの程度かを示す パラメータです。 このパラメータは、事実上、オブジェクトの色が単色ではなく色の範囲にあることを指定することができます。 また、孤立した色ではなく、むしろ類似した色で形が形成されていないぼやけた画像にも役立ちます。 許容値が高いほど、誤った形状検出の可能性が高くなります。 ほとんどのシナリオでは、値はぼかしレベルに応じて[0、100]の範囲内にある必要があります。 パラメータを指定しない場合、デフォルトで0になり、アルゴリズムは単色オブジェクトのみを検索します。

    bridgecolors = <HTMLColor1; HTMLColor2; ... HTMLColorN>

    bridgecolorsの パラメータはオプションです。 追加許容色をセミコロンで区切りリストを作成できます。 これにより、既知の色の他のオブジェクトが描画されると予想される連続オブジェクトを検索することができます。 これらの色は常に完全一致を使用して比較され、 "tolerance"パラメータでは機能しません 。

    rotations=<1-360>
    オプションの rotation パラメータは、テンプレートイメージが提供されている場合にのみ意味を持ちます。 回転粒度を定義します。 基本的には、オブジェクトのフィルタリングの目的でテンプレートオブジェクトを何回回転させるかを指定します。 たとえば、値が36の場合、シェイプは10度ステップで回転します。 、回転数が多いと、回転した物体の認識精度は向上しますが、認識スピードは低下します。 回転数が低い場合は、 "passrate" パラメータ を低下させることによってフォローできます。 このアプローチは、パフォーマンスに関して幾分優れていますが、テンプレートに似たオブジェクトを誤って検出するリスクが高くなります。

    min=w:<width>;h:<height>
    結果のオブジェクトをフィルタリングするためのオプションの最小サイズ(幅および/または高さ)。 パラメータでは、幅と高さをセミコロン(たとえば "w:100;h:100") または次元のうちの1つ( "h:100")で区切って指定できます。

    max=w:<width>;h:<height>
    結果のオブジェクトをフィルタリングするオプションの最大サイズ(幅および/または高さ)。 パラメータでは、幅と高さをセミコロン(たとえば "w:100;h:100")または次元のうちの1つ( "h:100")で区切って指定できます。

    overlapmode=<true|false>
    オプションの overlapmode フラグは、画面上のオブジェクトがオーバーラップする(競合する)かどうかを定義します。 パラメータ値が "true"の場合 、メソッドは部分的に重なったオブジェクトを探すためにより多くのスキャンを続けます。

    draw=<true|false>
    draw パラメータは、HeartCore Roboのデスクトップビュー上にあるオブジェクトのハイライト表示を可能にオプションのフラグです。 パラメータが 「true」の場合 、アルゴリズムはデスクトップビューアのGUIコンポーネントのデスクトップイメージ上にオブジェクト矩形を描画します。 これは、デバッグやデモンストレーションの目的に役立ちます。 これらの図は、スクリプトが終了したときにリセット(削除)されるか、または 「clear = true」の パラメータが指定された別のオブジェクト検索 が実行されます。

    clear=<true|false>
    clear パラメータは、以前に呼ばれたオブジェクトの検索方法によって作成されたすべての画面をクリアすることができます。 詳細については、 draw パラメーターを参照ください。

    戻り値

    このメソッドは、指定された条件を満たすオブジェクトが少なくとも1つ見つかった場合に、呼び出しコマンド(メソッド呼び出し)へ0(成功)を返します。 それ以外の場合は1の値を返します。

    トラブルシューティング

    失敗した 'object'の 比較 を処理するには :
    • スクリプトが検索に失敗した後に終了するように設計されている場合は、ロスレスフォーマット(PNGまたはBMP)でスクリーンショットを作成することをお勧めします。 そのようなコードの例を下の例に示します。 これにより 、ログインダイアログ 「スタティックイメージクライアント」 または 比較コマンド/メソッドコールプロパティウィンドウの「RDイメージをロード」ボタンを使用し てスクリーンショットを読み込んだ後、失敗した比較を再現してデバッグすることができます 。
    • 合格 が得られるまで 、合格率を下げるか、RGB許容差パラメータ( 'tolerance' )を上げて 「比較」ボタンを押してテストします。 パラメータが壊れた検索を修正できないようであれば、代替テンプレートイメージを作成し、それをテンプレートリストまたは イメージコレクションに 追加し ます。
    • 比較の失敗を引き起こす最も一般的な要因については、「 画像比較の推奨事項 」の章を 参照してください 。
    • 明白な理由がない場合、検索が失敗した場合は、画像テンプレートとともにスクリーンショットを HeartCore Robo Desktopサポートにご連絡いただけると幸いです 。


    4.3 テキスト認識方法


    4.3.1 Tesseract-OCR(「tocr」)


    説明
    トップ^

    Tesseract-OCRメソッド(コード "tocr" )を使用すると、外部の Tesseract-OCR エンジンバージョン2以降 を呼び出して 、リモートデスクトップイメージからテキストを抽出することができます。 この方法を使用する前に、クライアントシステム(つまり、HeartCore Roboを実行しているシステム)にTesseractをインストールして設定する必要があります。

    • Tesseractをダウンロードしてインストールします( 手順 )。
      • Windowsの場合は 、言語ファイルもインストールする tesseract-ocr-setup-3.05.01.exe 以降のリリースを使用することを強くお勧めします。 また、 tesseract-ocr-setup-4.00.00dev.exe インストーラでは機能性についてテストしましたが、全体的な精度については テストできていません。 4.0.0-betaとマークされた新しいビルドは正しく構成されておらず、手動で修正する必要があります。
    • HeartCore Roboは、デフォルトで tesseract バイナリがシステムパス上にあると推定し設定します。 そうでない場合は、どこにファイルがあるかを指定してください。 HeartCore Robo Desktopで編集->プリファレンスウィンドウを開き、Tesseract-OCR画面を選択します。 コマンドテンプレートを 'tesseract'バイナリの絶対パスで更新します。 たとえば、TesseractをC:\Program Files\Tesseract フォルダにインストールした場合は 、コマンドテンプレートを次の場所に更新します。
    "C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" $1 $2 $3 $4
    • インストールされたTesseract-OCRの統合をテストするには、テストスクリプトエディタが開いている状態でスクリプト->Compareto コマンドプロパティウィンドウを開きます。比較メソッドのドロップダウン で "tocr"を選択し 、ウィンドウにTesseractがあるかどうかを確認させます。
    • スクリプトやコマンドの実行中にTesseractが正しく実行されないと、 _TOCR_ERROR スクリプト変数に値が設定されます(下記参照)。
    統合は、Tesseractコマンドラインインターフェイス(CLI)とローカルファイルシステムに基づいています。 このメソッドは、実行されると、 cmparea パラメータを使用して 指定されたデスクトップイメージまたはその矩形部分を抽出します。 画像は拡大され(スケールアップされ)、精度が向上し、8ビットの白黒フォーマットでシステムの一時パスに保存されます。 この方法では、イメージファイルを引数としてCLIを使用してTesseractを起動します。 エンジンは、OCRを実行し、認識されたテキストを一時的な経路のテキストファイルに格納し、その後、この方法によって解析され、 text (平文検索)、 text および 許容範囲 (許容テキスト検索)または パターン (正規表現マッチング)パラメータを使用します。

    正規表現のマッチングが 指定されたテキストと一致する java.util.regex.Pattern 準拠の正規表現を記入してください。 バージョン4.1.3までは、式は テキスト全体 と一致しなければならず、部分一致の文字列検索は行われません。 バージョン4.1.4は、一致する場所のテキストの検索をサポートし、テキストを返し、 textパラメータ と同じ方法で座標を返し ます。

    レーベンシュタイン距離 トレラント(ファジー)テキスト検索 に基づいています。 これは、1つの文字列を他の文字列に変換するために必要な編集の最小数として定義され、許容可能な編集操作は1文字の挿入、削除、または置換です。 このメトリックは 、“text”フィールドで提供されるサンプルテキストを考慮するために、いくつの文字が省略されるか、または最大で正しく認識されないかを指定する整数である distance パラメータ によって使用可能になり ます。 パラメータ同等。 正規表現とは異なり、許容マッチングは、指定されたテキストと距離に一致する文字列の出現を認識したテキストを常に検索します。 文字列の前後に別のテキストを指定する必要はありません。

    このメソッドは、OCR結果を_TOCR_接頭辞付き変数のセットに次のように格納します。

    変数名
    説明
    _TOCR_ERROR = <エラーテキスト>
    Tesseractがインストールされていないか、誤って設定 されているときにスローされるエラーテキストを含みます。
    詳細については、 トラブルシューティング の段落を参照してください 。
    _TOCR_TEXT = <テキスト> 認識されたテキスト(すべての行が改行文字で区切られます)。
    _TOCR_TEXT_X = <X座標>
    _TOCR_TEXT_Y = <Y座標>
    _TOCR_TEXT_W = <幅>
    _TOCR_TEXT_H = <高さ>
    認識されたテキストの境界矩形(3.4以降)。
    _TOCR_LINE_COUNT = <数値> 認識されたテキスト行(行)の数。
    _TOCR_LINE <n> = <lineText> <n>が1〜_TOCR_LINE_COUNTのn行目のテキスト。
    _TOCR_LINE_X_ <n> = <X座標>
    _TOCR_LINE_Y_ <n> = <Y座標>
    _TOCR_LINE_W_ <n> = <幅>
    _TOCR_LINE_H_ <n> = <高さ>
    n番目の線の境界矩形(3.4以降)。

    指定された文字列の認識されたテキストを検索 するために text または pattern パラメータが指定されると、このメソッドは結果変数を次のように作成します。


    変数名
    説明
    _TOCR_MATCH_COUNT = <数値> パターン
    式または text distance (指定されている場合)パラメータ と 一致する、認識されたテキスト内のロケーション(文字列)の数 。
    _TOCR_MATCH = <matchingString>
    最初に一致する文字列。 distanceが 0に設定されているか、設定されていない
    場合は変数の値に textが 使用され、変数にtextパラメータの値が代入されます。
    _TOCR_MATCH_ <n> = <matchingString> <n>が1〜_TOCR_MATCH_COUNTのn番目の一致する文字列。
    場合 distanceが 0に設定されているか、指定されていない場合
    textが パラメータが使用され、変数に text の値が含まれます(3.5以降)。
    _TOCR_MATCH_INDEX=<index>
    認識されたテキスト内の最初の一致インデックス(位置)が代入されます。
    索引付けは、認識されたテキストの開始を示す 0 で始まります。
    _TOCR_MATCH_INDEX_ <n> =<index> <n>が1〜_TOCR_MATCH_COUNTのn番目の一致インデックス。
    索引付けは、認識されたテキストの開始を示す0から始まります(3.5以降)。
    _TOCR_MATCH_X =<X座標>
    _TOCR_MATCH_Y=<Y座標>
    _TOCR_MATCH_W=<幅>
    _TOCR_MATCH_H=<高さ>
    最初の一致する文字列の境界矩形(3.4以降)。
    _TOCR_MATCH_H_ <n>=<X座標>
    _TOCR_MATCH_Y_ <n>=<Y座標>
    _TOCR_MATCH_W_ <n>=<幅>
    _TOCR_MATCH_H_ <n>=<高さ>
    1〜_TOCR_MATCH_COUNT<n>でのn番目に一致する文字列の境界矩形 。
    _TOCR_MATCH_CLICK_X =<X座標>
    _TOCR_MATCH_CLICK_Y =<Y座標>
    最初の一致する文字列の中心座標(3.4以降)。
    次のようなタスクに使用することができる 「OCRを使用して文字列を検索し、それをクリックしてください」
    典型的な例: バージョン4.1以降では、上記のコードブロックの代わり にClickコマンドを使用することをお勧めします :

    Compareto method="tocr" cmparea="x:33,y:2,w:200,h:22" text="Cancel"
    if ({_EXIT_CODE} > 0) {
      Exit 1
    } else {
      Mouse click to=x:{_TOCR_MATCH_CLICK_X},y:{_TOCR_MATCH_CLICK_Y}
    }




    Click ocr cmparea="x:33,y:2,w:200,h:22" text="Cancel"

    _TOCR_MATCH_CLICK_X_<n>=<X座標>
    _TOCR_MATCH_CLICK_Y_ <n>=<Y座標>
    _TOCR_MATCH_COUNT<n>での1〜n番目の一致する文字列の中心座標 。

    オプション

    このメソッドはテンプレートイメージを受け付けません。 "passrate" パラメータは 、Tesseract-OCRのコンテキストでは適用されず無視されます。 "cmparea" パラメータは省略可能で、省略時にはデフォルトでフルスクリーンになります。

    サポートされている特定のパラメータ:

    language=<3-charLanguageCode>
    'language' パラメータはTesseract言語データファイルの有効な3文字言語コードを設定できます。 日本語は"jpn"です。 パラメータを省略すると、デフォルトで "eng" (英語)になります。

    scale=<scaleFactor>
    'scale' パラメータは、 それがTesseractに渡される前にデスクトップの画像を内部で拡大表示するように倍数で定義します。 スケーリングは精度に影響する可能性があります。 詳細については、 トラブルシューティングの段落を参照してください 。

    スケール値には、1.5,2,3などの任意の浮動小数点数を指定できます。 大きな値を指定するとメモリ要件が大幅に増加し、HeartCore Roboのメモリが不足する可能性があります(OutOfMemoryError)。 デフォルトの倍率は2です。

    text=<textToSearchFor>

    textは認識されたテキストを検索するためのオプション。 OCRが正しく実行されたときホスティングコマンドには、0が返されます。 認識されたテキストがそうでない場合は、指定された文字列または1を返します。 テキスト位置のインデックスおよびスクリーン座標は、 _TOCRスクリプト変数 に格納され、 さらに処理される可能性があります。 このパラメータは、 パターン 1と一緒に使用することはできません 。

    distance=<0-[textLength]>
    寛容なテキストマッチングを実行するために " text" パラメータ と組み合わせて使用​​されるオプション(Levenshtein距離)。 詳細については、メソッドの仕様を参照してください。

    pattern=<正規表現>
    java.util.regex.Pattern 準拠正規表現で認識されたテキストをテストする(オプション) 。 このパラメータは、 text と一緒に使用することはできません 。
    • バージョン4.1.3までは、式は テキスト全体と 一致する必要があります(一致する部分文字列の検索は実行されません)。 
    • バージョン4.1.4以降、textパラメータと同じ方法で一致する場所を検索 します。 一致するテキスト位置のインデックスおよびスクリーン座標は、_TOCRスクリプト変数に格納され、さらに処理される可能性があります。 この機能強化により、1つの「Click ocr」コマンド 内で「一致するテキストの場所を見つけてクリックする」などのアクションを作成できます 。  
    mode=<modeNumber>
    オプションの認識モード(3.5以降でサポート)。 より良い結果を得るためにエンジンの動作を変更することができます。 サポートされているモードは次のとおりです。
    1. デフォルトのTesseractモード (コード "1")。 これはOSDなしの自動ページ分割( "-psm 3" CLIスイッチ) のTesseractのデフォルトモードです。 この値は、3.5より前のリリースのHeartCore Roboと互換性があります。
    2. 高精度 (コード "2")。 これは、スクリーン上のテキストをラインに分割し、ラインモードで個別にOCRを再適用するHeartCore Roboの機能強化です( -psm 7 )。 このアプローチは数倍も遅くなりますが、特にOCRがアプリケーションウィンドウなどの小さな画面領域に適用される場合は、より正確な結果が得られます。
    3. 画像を1つの単語 (コード "8")として扱います。 認識されたテキストの長さが最大3文字の場合にこのモードを使用します。 これは、Tesseractのネイティブモードで、 "-psm 8" CLIスイッチを介して実行され ます。

    HeartCore Roboバージョン4.0.1以降では、以下の追加モードがサポートされています。

    1. "-psm 4" Tesseract CLIスイッチに 対応する可変サイズのテキスト(コード "4")の単一列を想定します。
    2. "-psm 5" Tesseract CLIスイッチに 対応する、垂直に整列されたテキスト(コード "5")の単一の均一ブロックを仮定する
    3. "-psm 6" Tesseract CLIスイッチに 対応する単一の統一テキストブロック(コード "6")を仮定します。
    4. イメージを "-psm 7" Tesseract CLIスイッチに 対応する単一のテキスト行(コード "7")として扱います。
    5. 画像を "-psm 9" Tesseract CLIスイッチに 対応する(コード "9")内の単一の単語として扱います。
    6. 画像を "-psm 10" Tesseract CLIスイッチに 対応する1文字(コード "10")として扱います。
    filter=<filterNumber>
    オプションの画像フィルタ(3.5以降)。 OCRの精度を向上させるために、スクリーン上の特定のアーチファクトを除去します。 フィルタは、ターゲットスクリーンまたはその部分が、標準のソリッドな灰色または白のボタン、ドロップダウン、およびその他のコンポーネントを持つアプリケーションウィンドウなどの、長方形のソリッドカラーエリアに濃い色のテキストを含む場合に選択的に適用する必要があります。 白や明るい色のテキストや、画像や写真などの豊かな色のグラフィックは、フィルタリングには適していません。 このような場面でフィルタを使用すると、テキストが損傷し、OCR精度が低下する可能性があります。

    fontsize = <fontSize>
    認識されたテキストのおよそのフォントサイズ(3.5以降)。 デフォルト値は15です。イメージフィルタがオンの場合にのみ使用されます。 これは、フォントサイズ以下のアーティファクトを除去しないようにフィルタに指示します。 値が実際のフォントサイズよりもはるかに小さい場合、フィルタによって文字の一部が無効になることがあります。 値が大きすぎると、フィルタは特定のアーティファクト(コンポーネント)を画面から削除しないため、精度が低下する可能性があります。

    戻り値

    この方法では、OCRが誤った構成やI/Oエラーによってエラーを発生した場合に、hostingコマンドを1に戻します。 これは、Tesseractがまったくインストールされていない場合や、設定されたコマンドテンプレートがTesseractバイナリを指していない場合、または 呼び出したスクリプトによって指定された オプションの 言語 パラメータが正しくインストールされたTesseract言語データファイルと一致しない場合に適用されます。 エラーのテキストは、 _TOCR_ERROR 変数 を通じて使用可能になり ます。 この変数 の 存在 を テストする ことは、テストスクリプトでコアのOCRエラーを検出する方法です。

    そうでない場合、戻りコードは入力パラメーターに依存します。 結果のテストを行わずにOCRだけを実行するメソッドが呼び出された場合、テキストが認識されなくても常に0が返されます。 メソッドが "text" または "pattern" のパラメータで呼び出された 場合、認識されたテキストが指定された文字列/正規表現と一致する場合は0を返し、そうでない場合は1を返します。

    トラブルシューティング

    Tesseract-OCRが正しくインストールされ、設定されているかどうかをテストするには、「比較」ボタンを使って「tocr」認識を実行します。 Tesseractによってスローされたエラーを表示します。 最も一般的なエラーは次のとおりです。
    • Tesseractはまったくインストールされていません。
    • Tesseractはインストールされていますが、システムパスにはありません。 この場合は、PreferencesウィンドウでTesseract-OCR設定パネルを探し、コマンドテンプレートを "tesseract"バイナリへのフルパスで更新する必要があります。
    • Tesseractはインストールされ、構成されていますが、言語データファイルがないか、 言語 パラメータで 指定されたファイルがありません 。 この場合、言語ファイルをダウンロードし、Tesseractが必要とするフォルダに保存する必要があります。
    Tesseractの認識能力は、最も一般的なフォントと言語に限定されているため、HeartCore Robo Desktopは、特定のテスト環境に対する正確性および互換性を保証しません。 Tesseractエンジンは、最終的に特定のフォントや言語設定のために "訓練させる"ことができます。 これらのステップは、 Tesseractのドキュメント に記載されています。

    精度はHeartCore Robo側で次の2つのパラメータによってのみ制御できます。
    1. cmparea パラメータを使用し て認識を特定の画面領域に限定することで、精度が大幅に向上します。 デスクトップ画面全体で認識が行われると、エンジンが見つからない場所であってもテキストが見つかることが多いようです。 これは、多くのエラーで予期しない結果につながります。
    2. エンジンには1-2文字からなるスタンドアロンの文字列を認識できないようですが、長い文字列(3文字以上)には使用してください。
    3. 2.5や3のような "scope" パラメータの値が高いほど、例えばフォントが非常に小さい場合など、精度が若干向上する可能性があります。

    使用例

    Var _TOCR_LINE_COUNT=0
    Compareto method="tocr" cmparea="x:33,y:2,w:200,h:22"
    for (i=1; {i}<{_TOCR_LINE_COUNT}+1; i={i}+1) {
       Typeline "{_TOCR_LINE{i}}"
    }

    - 指定したデスクトップ領域のテキストを認識し、デスクトップに入力します。


    Compareto method="tocr" cmparea="x:33,y:2,w:200,h:22" pattern="[aA]pplication"
    if ({_EXIT_CODE} > 0) {
      Exit 1
    }
    - 認識されたテキストが'アプリケーション'または 'アプリケーション'の単語と一致 しない場合は、スクリプトを終了します 。


    Compareto method="tocr" cmparea="x:33,y:2,w:200,h:22" pattern=".*[aA]pplication.*"
    if ({_EXIT_CODE} > 0) {
      Exit 1
    }
    - 認識されたテキストに 'Application'または 'application' が含まれていない場合にスクリプトを終了するように変更された前述の例 。


    Compareto method="tocr" cmparea="x:33,y:2,w:200,h:22" text="apple" distance="2"

    - 画面上のテキストを認識し、それが好きであるかどうか、および/または 'apple'のような文字列が含まれているかどうかを確認します。

    • OCRが 'There are a apple'のようなテキストを認識すると 、正確に一致するものが見つかるため、 コマンドは 成功 (終了コード0) を報告し ます。
    • OCRが 'There are a Apple'のようなテキストを認識 すると、2の許容距離内にある1文字(A→a)の代わりに 'Apple'という単語を 'apple'に変更できるため 、コマンドは 成功 を報告し ます。
    • OCRのようなテキスト認識する場合は 「APPLEがある」と 、コマンドが報告され 、成功を 単語「APPLSは」(1)置換の二つの操作で「りんご」に変更することができますので、(A-> a)と(2)加算(+ e)または置換(s→e)であり、これはまだ許容距離2以内である。
    • OCRが 'There are Doppler'の ようなテキストを認識した場合、 単語 'Doppler'に1回の置換(o-> a)の後で 'apple'と一致するシーケンスが含まれているため 、コマンドは 成功 を報告し ます。
    • 'Appisがあります'のようなテキストをOCRが認識 すると、 'Appis'という単語に少なくとも3つの操作(A-> a、i-> l、s-> e)が必要なため 、コマンドは 失敗 (終了コード1) 2の許容距離以上の「Apple」になります。
    テキストが一致すると、テキスト内の一致位置のインデックスが _TOCR_MATCH_INDEX 変数に 格納され ます。 インデックスは、テキストの先頭を表す0から始まります。 一致する部分文字列は、 _TOCR_MATCH 変数の 下に保存され ます。 たとえば、認識されたテキストが 「There are Appls」 である上記の例では 、 _TOCR_MATCH=Appls およびで 変数が作成されます _TOCR_MATCH_INDEX=10


    4.3.2画像ベースのテキスト認識('text')


    説明
    トップ^
    テキスト認識 (コード 'text' V3.0以降)は、イメージ保存された文字の集合に基づいてテキストや画面上の座標を認識することができます。 OCRと比較して:
    • OCRエンジン は、通常、形状パターンによって文字を認識します。 数多くのフォント、テキスト、背景色があってもすぐに使用できます。 多くのOCRソリューション(Tesseract-OCRなど)は、テキストまたはそのセグメントの座標を取得することを許可していません。 OCRへ登録されていないフォントに適用されると失敗します。 このような状況の場合、回避策がないか、または特定のフォントを調整するために長い手作業が必要です ( Tesseractトレーニングプロセスなど )。
    • HeartCore Roboの 画像に基づくテキスト認識 は、画像によって文字を認識しています。 これは、イメージコレクションが構築された特定のフォント、テキストの色および背景に対してのみ機能します。 入力テキストの検索条件で指定された部分文字列のテキスト座標または位置を取得します。
    キャラクタイメージコレクション は、 キャラクタキャプチャウィザード で快適に 作成および管理できます。 詳細は ヘルプページ を参照ください。

    "tocr"メソッドと同様に、 認識されたテキストは次の3つの方法で検証できます。
    1. "text" パラメータは指定された文字列のプレーンテキスト検索をアクティブ化し、発見した場合呼び出したコマンドの変数に0(成功)を、失敗の場合1(失敗)を返します。
    2. "text" パラメータ と"distance"パラメータ の組み合わせは、 許容(ファジー)テキスト検索を実行します "distance" パラメータは単一文字の挿入、削除、または置換の編集操作ができるようになっており 、1つの文字列を変換するために必要な編集の最小数として定義( レーベンシュタイン距離 )されます。 このメトリックは、 "distance" パラメータは、 "text" パラメータに相当 するサンプルテキストを考慮するために、いくつの文字が省略されるか、または最大で正しく認識されないかを指定する整数です。 正規表現とは異なり、許容マッチングは、指定されたテキストと距離に一致する文字列の出現を認識したテキストを常に検索します。 文字列の前後に別のテキストを指定する必要はありません。
    3. 正規表現のマッチングは 指定され認識されたテキストと一致する java.util.regex.Pattern 準拠の正規表現をおこないます。 式は テキスト全体 と 一致する必要があり 、一致する部分文字列の検索は実行されません。
    このメソッドは、次のように、OCR結果を_TEXT接頭辞変数のセットに格納します。

    変数名 説明
    _TEXT_ERR=<error_text> エラーメッセージ。
    デスクトップ接続がない場合や、指定された文字イメージコレクションが存在しない場合や読み込めない場合など、
    メソッドが文字 認識 を実行できない場合にのみ、データは生成されます。
    _TEXT=<テキスト>
    認識されたテキスト(完全な複数行形式)。 変数は
    、メソッドが正常に実行されたときに常に作成されます
    (デスクトップ接続が見つからないか、文字イメージのコレクションが失われても失敗しないことを意味します)。
    _TEXT_X =<number>
    _TEXT_Y=<number>
    _TEXT_WIDTH=<number>
    _TEXT_HEIGHT=<number>
    X、Y座標、認識されたテキストの幅と高さ。
    _TEXT_LINE_COUNT=<番号> 認識されたテキスト行の数。
    _TEXT_LINE <n> = <text> n番目のテキスト行(<n>は
    1〜_TEXT_LINE_COUNTの 間の行番号 です)。
    _TEXT_LINE_X_ <n> = <number>
    _TEXT_LINE_Y_ <n> = <number>
    _TEXT_LINE_WIDTH_ <n> = <number>
    _TEXT_LINE_HEIGHT_ <n> = <number>
    X、Y座標、およびn番目のテキスト行の幅と高さ(
    <n>は1〜_TEXT_LINE_COUNTの間の行番号です)。
    _TEXT_MATCH = <テキスト>
    「テキスト」 パラメータ(平文
    検索)または 「テキスト」 「距離」 (許容テキスト検索)の 組み合わせ と一致する認識されたテキストの部分 。
    _TEXT_MATCH_INDEX = <数値>
    _TEXT_MATCHによって参照される一致するテキストの位置(インデックス)。 インデックス
    は、認識されたテキストの先頭に対応する0から始まります。
    _TEXT_MATCH_X = <number>
    _TEXT_MATCH_Y = <number>
    _TEXT_MATCH_WIDTH = <number>
    _TEXT_MATCH_HEIGHT = <number>

    _TEXT_MATCH変数で参照される 一致するテキストのX、Y座標、および幅と高さ 。


    オプション


    このメソッドは 、入力に 1つの 文字イメージコレクション   を必要とします。 「passrate」 の文脈における 'text' パラメータ の方法は、文字のレンダリングに若干の違いへの許容度を定義します。 この許容差は現在実験中であり、いくつかのより大きなフォントに対してのみ機能します。 合格率を100%に保つことが推奨されます。

    「cmparea」 標準パラメータは、画面の特定の矩形領域にテキスト認識を制限するために使用することができます。 指定されていない場合は、デフォルトでフルスクリーンになります。

    サポートされている特定のパラメータ:

    text=<textToSearchFor>
    認識されたテキストを検索するためのオプションのテキスト。 認識が正しく実行されたときにホスティングコマンドへは、0が返さ テキストが、認識されない場合は、指定された文字列または1が返されます。 このパラメータは、 パターン1 と一緒に使用することはできません 。

    distance=<0-[textLength]>
    寛容なテキストマッチングを実行するために " text" パラメータと組み合わせて使用されるオプション(レーベンシュタイン距離)。 詳細については、compareto_textメソッドの仕様を参照してください。

    pattern=<正規表現>
    java.util.regex.Pattern 準拠正規表現で テキストを認識しテストします(オプション)。 式は テキスト全体と 一致する必要があります(一致する部分文字列の検索は実行されません)。 このパラメータは、 text と一緒に使用することはできません 。

    戻り値

    "text" "distance" "pettern" のパラメータが使用されない場合、呼び出されたコマンドには実際に認識されなかったとしても0(成功)を返します。 テキストマッチングパラメータが使用されている場合、、認識されたテキストが一致するかどうかに応じて、成功(0)または失敗(非ゼロ値)のいずれかを返します。

    トラブルシューティング


    失敗した 'text' 比較 を処理するには :
    • 画面で認識しようとしている背景色とフォントの種類、サイズ、色が文字画像コレクションの文字画像と同じであることを確認してください。
    • 内部アルゴリズムは、コレクションイメージからテキスト行とスペースサイズの高さを導出するので、 異なるフォントタイプおよび/またはサイズ の文字イメージを 単一のコレクションに混ぜてはいけません 。 異なるフォントと背景色の文字画像を混在させることは、文字のフォントタイプとサイズが同じであればOKです。
    • テキストがアンチエイリアス処理されていたり、定期的にレンダリングされていない場合は、合格率を下げてみてください。 ただし、これは大きなフォントでのみ機能します。

    使用例


    Var _TEXT_LINE_COUNT=0
    Compareto
    "C:\MyAutomation\chars"   method="text" cmparea="x:33,y:2,w:200,h:22"
    for (i=1; {i}<{_TEXT_LINE_COUNT}+1; i={i}+1) {
       Typeline "{_TEXT_LINE{i}}"
    }

    - 指定したデスクトップ領域のテキストを認識し、デスクトップに入力します。


    Compareto "C:\MyAutomation\chars"   method="text" cmparea="x:33,y:2,w:200,h:22" pattern="[aA]pplication"
    if ({_EXIT_CODE} > 0) {
      Exit 1
    }
    - 認識されたテキストが 'アプリケーション'または 'アプリケーション'の単語と 一致 しない場合は、スクリプトを終了します 。

    Compareto "C:\MyAutomation\chars"   method="text" cmparea="x:33,y:2,w:200,h:22" pattern=".*[aA]pplication.*"
    if ({_EXIT_CODE} > 0) {
      Exit 1
    }
    - 認識されたテキストに 'Application'または 'application' が含まれて いない場合にスクリプトを終了するように変更された前述の例 。

    Compareto "C:\MyAutomation\chars"   method="text" cmparea="x:33,y:2,w:200,h:22" text="apple" distance="2"

    - 画面上のテキストを認識し、それが好きであるかどうか、および/または 'apple'のような文字列が含まれているかどうかを確認します。

    • メソッドが 'There are a apple'のようなテキストを認識 すると 、正確に一致するものが見つかるため、 コマンドは 成功 (終了コード0) を報告します。
    • この方法で 「Appleがあります」というテキストが認識された場合、 許容距離2以内の1文字(A→a)の代わりに「Apple」という単語を「apple」に変更できるため 、コマンドは 成功 を報告し ます。
    • この方法は、のようなテキスト認識する場合は 「APPLSがある」と 、コマンドが報告され 、成功を 単語「APPLSは」 (1)置換の二つの操作で「Apple」に変更することができますので、(A-> a)と(2)加算(+ e)または置換(s→e)であり、これはまだ許容距離2以内ということになります。
    • メソッドが 'There is Doppler'の ようなテキストを認識した場合、 単語 'Doppler'には単一の置換(o-> a)の後で 'apple'と一致するシーケンスが含まれているため 、コマンドは 成功 を報告し ます。
    • 'Appisがあります'のようなテキストを認識 すると、 'Appis'には少なくとも3つの操作(A-> a、i-> l、s-> e)が必要なため 、コマンドは 失敗 (終了コード1) 2の許容距離以上の「りんご」になる。
    テキストが正常に一致したとき、テキストにマッチ位置のインデックスに格納されている _TEXT_MATCH_INDEX 変数とそのX、Y座標、幅/高さ _TEXT_MATCH_X 、 、 および 。 一致する部分文字列は、 変数の 下に保存され ます。 たとえば、認識されたテキストが「There are Appls」である上記の例では 、 およびで 変数が作成されます 。 _TEXT_MATCH_Y _TEXT_MATCH_WIDTH _TEXT_MATCH_HEIGHT _TOCR_TEXT _TEXT_MATCH=Appls _TEXT_MATCH_INDEX=10

    4.4その他のメソッド


    4.4.1ヒストグラムに基づく比較(「デフォルト」)


    説明
    トップ^
    ヒストグラムに基づく比較法 (コード 「デフォルトでは」 )歴史的にそれがために設計された2005年にHeartCore Roboによって提供された第1の方法であった 一つ以上のフルスクリーンテンプレート画像(複数可)に対してデスクトップ画面のクイックチェック 。 それは "search2" "search" メソッドの ようなより良い検証手段によって廃止されまし たが、特別な場合にはまだ使用されています。

    この方法は、単純なヒストグラムの比較に基づいています。 画像ヒストグラムは、単純に言えば、各色の画素数とともに画像内に位置する色のリストです。 この方法は、まず、リモートデスクトップおよびテンプレート画像の両方のヒストグラムを計算し、それらを比較する。 次いで、画像比較の結果は、一致する画素の数を画像画素の総数で割ったものとして計算されます。

    次の例は、このメソッドの動作を示しています。 簡単な2つの120x100画像(それぞれ12000ピクセル)を用意します。






    画像1
    120x100





    画像2
    120x100
    画像1
    画像2 マッチングピクセル

    9000ピクセル
    6000ピクセル
    6000ピクセル
    3000px
    6000ピクセル
    3000px
    一致するピクセルの合計:
    9000ピクセル
    比較結果が 0.75以上75%である。この場合9000px / 12000px、です。 これは、画像を視覚的に比較するときに人間が言うことに相当します。

    これは非常に基本的なアルゴリズムですが、アプリケーションとデスクトップの背景色が異なる場合、デスクトップが正しいアプリケーションを表示するかどうかを確認する必要がある場所で十分です。 このアルゴリズムは、全画面色ヒストグラムに影響を与えないウインドウ位置の変化に関しても非常に頑強である。

    デフォルトの方法は、同じサイズの2つの画像を比較するように設計されていることに注意してください 。 テンプレートイメージのサイズがリモートデスクトップと異なる場合は、両方のイメージが内部で交差のサイズに切り取られます。 これにより予期しない結果が生じる可能性があるため 、カスタム比較領域("cmparea"パラメータ) とともにデフォルトの方法を使用することは お勧めしません

    オプション

    このメソッドは 、hostingコマンドまたはJavaメソッド呼び出しによって指定された 1つ以上の テンプレートイメージ および/または イメージコレクション を必要 とします。 "passrate" のパラメータは 、 "default" メソッドの 文脈において 、テンプレート画像とスクリーンヒストグラムの比較の最も低い許容結果を 定義します メソッドの説明 の例を参照してください )。 デフォルトは95%です。 「cmpareaは、」 省略された場合、フルスクリーンオプションで、デフォルトです。

    その他のメソッド固有のパラメータはサポートされていません。

    戻り値
    このメソッドは、生成された比較結果が指定したパスレート以上の場合に、呼び出し元のコマンド (メソッド呼び出し) が 0 (成功) を返すようにします。それ以外の場合は1の値を返します。

    トラブルシューティング
    "default"メソッドはメソッド固有のパラメータを使用しないので、失敗したヒストグラム比較を扱う唯一の手段は "passrate" パラメータの 減少です 。 ヒストグラム比較後の実際の比較結果を表示するには、変数ビューアで_COMPARE_RESULT変数を探します。

    一般的な イメージ比較の推奨事項 の他に、以下の信頼性要因を考慮する:
    • HeartCore Robo DesktopをインストールしているPCのデスクトップからすべてのアイコンとアイテムを削除し 、できるだけシンプルにします。 ほとんどのデスクトップでは、時刻と日付の更新との相違点を示す時計/日付も表示されます。 そのようなオブジェクトが比較対象の領域に参加している場合は、パスレートを使用して不一致ピクセルの許容値を上げます。
    • テストしているアプリケーションウィンドウが 安定したサイズ 安定した場所に 開いている かどうかを確認します。 可変ウィンドウのサイズと場所は、比較結果に大きな影響を与えます。 比較する前に、スクリプト化されたキーシーケンス(Alt + Spaceの後にWindowsではX、Linux / GnomeではAlt + F10など)を使用してアプリケーションウィンドウを最大化することをお勧めします。


    使用例

    Compareto netscape1.png;netscape1.png  method="default" passrate="90"

    if ({_EXIT_CODE} > 0) {
      Exit 1
    }

    - - 90%の合格率で デスクトップ画面 netscape1.pngnetscape1.png 画像を 比較し、画面に 一致しない場合は終了コード1でスクリプトを終了します。




    4.4.2イメージの差分( "diff")


    説明
    トップ^
    イメージの違い (コード 「diff」 は、デスクトップ画面を1つ以上のフルスクリーンテンプレート画像 と比較 し、一連の相違点を生成します。 これは通常、 Screenshot コマンドで 使用され 、強調表示された相違点を含むイメージを レポート に挿入します (下記の例を参照)。 アルゴリズムはエッジに基づいており、 色の変更は省略されています

    オプション

    このメソッドは 、ホスティングコマンドまたはJavaメソッド呼び出しによって指定された 1つ以上の フルスクリーンサイズのテンプレートイメージ および/または イメージコレクションを必要とします。 「合格率」 のパラメータは 、PASS結果を生成するための差の最低許容レベルを定義する。 デフォルトは95%です。 「cmpareaは、」 省略された場合、フルスクリーンオプションで、デフォルトです。

    その他のメソッド固有のパラメータはサポートされていません。

    戻り値
    比較結果が、指定された合格率以上である場合に呼び出されたコマンド(メソッド呼び出し)へ0(成功)を返します。 それ以外の場合は1の値を返します。

    使用例

    Compareto myscreen.png  method="diff" passrate="98"

    if ({_EXIT_CODE} > 0) {
      Exit 1
    }

    - 画面が myscreen.png 2%以上 異なる場合は、スクリプトを終了します 。


    Screenshot myapp.png  template="expected_screen.png" passrate="95" method="diff" drawdiff="true"

    - デスクトップ画面と expected_screen.png イメージの 違いを レポートファイルのスクリーンショットに描画します。