オブジェクト、メッセージ、および結果のグローバルプロパティ
SenseTalkには、スクリプト環境がオブジェクト、メッセージ、特定のコマンドまたは関数の結果をどのように扱うかを影響させるために使用できる多数のグローバルプロパティが含まれています。SenseTalkがメッセージをどのように扱うかを理解していると便利です:
SenseTalkの Set または Put コマンドでグローバルプロパティ値を設定できます。これらのプロパティのいずれかを参照するときは、普通の変数と区別するためにプロパティ名の前に the を使用しなければならないことに注意してください。
例:
set the searchrectangle to [1,2,2,3]
put 2 into the remoteworkinterval
以下のようにしてグローバルプロパティ内の特定の名前付きプロパティを追加または変更できます:
set the namedColors.pink to color("RGB,1.0,0.5,0.5") -- namedColors グローバルプロパティにピンクを追加し、そのRGB色値を定義します
set the listFormat's separator to " & " -- listFormat グローバルプロパティのseparator プロパティを設定します
プロパティは setoption または setoptions コマンドを使用して設定または更新することもできます。setoption コマンドでは単一のプロパティを更新でき、setoptions コマンドでは複数のプロパティを更新できます。
例:
setoption searchrectangle, [1,2,2,3]
setoptions {searchrectangle: [1,2,2,3], scriptlogging: yes}
setoption と setoptions はグローバルおよびローカルプロパティの使用に特化しているため、これらのコマンドのコマンド構文でプロパティ名から the を省略します。
ローカルおよびグローバルプロパティの操作についての追加情報については、SenseTalkのローカルおよびグローバルプロパティを参照してください。
The AssertionBehavior グローバルプロパティ
値: Exception, Warning, Error, Pause
デフォルト: Exception
動作: assert コマンドがステートメントを偽と評価した場合の assert コマンドの動作を設定します。
例:
set the AssertionBehavior to "warning" -- アサートコマンドが与えられた条件を偽と評価した場合にスクリプトが失敗しないように、アサーションのデフォルトの動作を例外から警告に変更します
assert that x < 10 -- AssertionBehavior グローバルプロパティが以前に設定されたため、xの値が10未満でない場合に警告メッセージを記録します
The AssertionsEnabled グローバルプロパティ
値: True, False
デフォルト: True
動作: False に設定されている場合、assert コマンドは無視されて実行されません。
例:
set the assertionsEnabled to false
assert imagefound("MyImage") -- このコマンドは実行されません
The AssertionPassCount, The AssertionFailCount, The AssertionErrorCount, The AssertionWarningCount, および The AssertionExceptionCount グローバルプロパティ
値: 整数
デフォルト: 0
動作: assertコマンドが条件を成功と評価すると、the assertionPassCountが1増加します。 assertコ マンドが失敗すると、the assertionFailCount、the assertionErrorCount、the assertionWarningCount、the assertionExceptionCountのいずれかが増加することがあります。
例:
この例では、assertコマンドを使用して単純な文を評価することにより、assertionPassCountが増加します。
put the assertionPassCount -- 他のassertコマンドが実行されていないので0を出力
put 7 into x
assert x < 10 -- Trueと評価される
put the assertionPassCount -- assertコマンドの肯定的な評価のためにこのカウンターが増加したので1を出力
この少し複雑なバージョンの例は、the assertionBehaviorを変更することで、assertコマンドが失敗した場合に例外をスローするのではなく、警告をログに記録するため、the assertionFailCountが失敗後にアクセス可能になる方法を示しています。
set the assertionbehavior to warning -- アサーションが失敗してもスクリプトは失敗しない
put the assertionPassCount -- 他のassertコマンドが実行されていないので0を出力
put 7 into x
assert x < 10 -- Trueと評価される
Assert x > 10 -- Falseと評価される
assert x = 10 -- これもFalse
put the assertionPassCount -- assertコマンドの肯定的な評価のためにこのカウンターが増加したので1を出力
put the assertionFailCount -- 多くのassertコマンドが失敗したため、このカウンターが2回増加したので2を出力
The ThrowExceptionResults グローバルプロパティ
値: True, False
デフォルト: True
動作: このプロパティは、コマンド操作がエラーを結果として例外をスローするかどうかを決定します。 the throwExceptionResults グローバルプロパティが True に設定されている場合、コマンドや関数が result 関数を例外オブジェクトに設定するたび(ほとんどのエラー条件で発生します)、その例外はスローされ、この関数を通じてメッセージとして利用可能になります。
例:
set the throwExceptionResults to false
例:
set the throwExceptionResults to false
put url "http://someinvalidURL.com" into PageContents
log the result -- Logs 'Error 404 in HTTPStatus: Server returned status code 404'
log "Performed URL GET."
例:
set the throwExceptionResults to false
set myProcessPath to "bad/process/path"
open process myProcessPath-- プロセス起動パスが無効なため失敗しますが、エラーは発生しません
set myResult to result() -- 結果を変数に格納します
put myResult
if myResult contains "launch path ("&myProcessPath&") not valid" then
LogWarning myResult -- Logs 'STProcessException: NSTask - launch path (bad/process/path) not valid'
end if
The BreakpointsEnabled グローバルプロパティ
値: True, False
デフォルト: True
動作: このプロパティは、スクリプト内に設定されたブレークポイントが有効になるかどうかを決定します。 breakpointコマンドを使用してスクリプトの制御をデバッガーに移すブレークポイントを設定できます。 実行中にブレークポイントを無効にするには、このプロパティを False に設定します。
例:
set the breakpointsEnabled to false
例:
#Calling Script
LoginWorkflow true -- スクリプトLoginWorkflowを呼び出し、パラメータ値"true"をスクリプトに渡します
#LoginWorkflowスクリプト
params isTestRun -- スクリプトが1つのパラメータ値を受け取るようにパラメータ化します
if isTestRun is true -- パラメータ値 "true"がスクリプトに渡されたかどうかを確認します
set the BreakpointsEnabled to false -- isTestRunの値がtrueの場合、ブレークポイントは無効になります
end if
Click "Login"
breakpoint -- BreakpointsEnabledグローバルプロパティがtrueに設定されている場合、スクリプトを一時停止します
Click "AccountDetails"
関連:
The Exception グローバルプロパティ
値: 空、またはtryブロックによってキャッチされた例外を記述するプロパティリスト
デフォルト: 空
振る舞い: このプロパティは、最新のtryブロックのコンテキストでスローされた例外に関する情報を含みます。各try文の始まりで、the exceptionは空に設定されます。tryブロックで例外がスローされると、例外オブジェクトがthe exceptionに入れられます。その値はその後tryブロックのcatch部分、または次のtry文までの任意の時間で利用可能になります。
例外はオブジェクト(プロパティリスト)です。例外オブジェクトには、例外が単純にテキストとして描画された場合に簡単な説明を表示するテキスト値があります。しかし、それはまた、以下のプロパティの1つ以上を含む他の有用な情報も含んでいます:
| 名前 | 例外名または識別子 |
|---|---|
reason | 例外の理由 |
location | 例外が発生したスクリプト内の位置のテキスト説明 |
callStack | callStack()関数によって返された、例外が発生した点までの呼び |
the exceptionはグローバルプロパティ(コンテナー)であるため、スクリプトはいつでもその内容を変更することが自由です。これは例外がキャッチされたときに便利で、キャッチした例外を変更したり、例えば追加のプロパティを追加したりして、再度スローすることができます。
StandardFormat関数は、例外オブジェクトのすべてのプロパティを表示するために使用できます:
log the standardFormat of the exception
例:
{asText:@"行2での実行時エラー:イメージが見つかりません - waitforエラー - 画面上に \"UsernameField\" というイメージが5.00秒以内に見つかりません", CallStack:[{Handler:"globalpropertiesobjmessages", Line:2, MeObjectID:"C:/Users/Carrie/Documents/Examples3.suite/Scripts/globalpropertiesObjMessages.script<SELECTION>", MessageName:"on_globalpropertiesobjmessages", MessageType:"Command", objectType:"SenseTalkFrame", RepeatIndex:0, ScriptObjectID:"C:/Users/Carrie/Documents/Examples3.suite/Scripts/globalpropertiesObjMessages.script<SELECTION>", TryDepth:1}], Help@"追加のヘルプが必要な場合は、'Image Searching'のドキュメンテーションを参照してください", ImageName:"UsernameField", Location:"globalpropertiesobjmessagesの行2", LogImage:{CaptureDate:"2017-09-20 17:58:10 -0600", CaptureHost:"GalaxyS5", CaptureLocation:[198, 126], CaptureScreenSize:[@"1080", @"1920"], Description:"", HotSpot:[147, 36], ImageLocation:"", ImageName:"UsernameField", ImagePath:"C:/Users/Carrie/Documents/Examples3.suite/Images/UsernameField.png", ImageRectangle:"", ImageSize:[295, 72], ImageTolerance:57, Pulsing:False, Scale:1, SearchType:"Smooth"}, LogMessage:"5.00秒以内に画面上に \"UsernameField\" というイメージが見つからない", Name:"イメージが見つかりません", objectType:"exception", OtherButton:"ヘルプ...", OtherHelp:"ePF/using/epf-finding-images.htm", Reason:"waitforエラー - 画面上に \"UsernameField\" というイメージが5.00秒以内に見つからない", ScriptError:{AsText:"行2での実行時エラー:イメージが見つかりません - waitforエラー - 画面上に \"UsernameField\" というイメージが5.00秒以内に見つからない", ErrorType:"実行時エラー", Line:2, Name:"イメージが見つかりません", objectType:[@"ScriptError", @"exception"], Reason:"waitforエラー - 画面上に \"UsernameField\" というイメージが5.00秒以内に見つからない"}}
例:
例外を出力します
例:
例外の名前を出力します
例:
try
"Windows VM"に接続します
catch
例外のScriptErrorを出力します -- 接続コマンドが例外をスローした場合、'行2での実行時エラー:接続に失敗しました - サーバー:192.168.120.128のポート:5900に接続できません サーバーに連絡できません:192.168.120.128:5900 (10060:操作がタイムアウトしました)'
end try
例:
try
"UsernameField"を待つ5
catch
例外のキーをログに記録します -- WaitForコマンドが例外をスローした場合、ログには'(asText,CallStack,Location,LogMessage,Name,objectType,Reason,ScriptErro)'が記録されます。
end try
例:
try
"UsernameField"をクリックします
catch
例外の"ExceptionTime"を現在の時間に設定します
例外のExceptionTimeをログに記録します -- Clickコマンドが例外をスローした場合、例外がキャッチされた時刻をログに記録します。例:'07:01 PM'
end try
例:
try
"Invalid Access", "名前またはパスワードが間違っています"をスローします
catch
例外を出力します -- "行2での実行時エラー:無効なアクセス - 名前またはパスワードが間違っています"
例外の名前を出力します -- "無効なアクセス"
例外の理由を出力します -- "名前またはパスワードが間違っています"
end try
The FrontScripts グローバルプロパティ
値: 空、またはメッセージを処理するオブジェクトまたはオブジェクトのリスト(つまり、ライブラリまたはスクリプト)
デフォルト: 空
動作: このグローバルプロパティは、ターゲットオブジェクトがメッセージを提供される前に、メッセージを処理する機会を得るオブジェクトのリストを含むことができます。the FrontScriptsのオブジェクトはメッセージをインターセプトし、あまり望ましくないが時々メッセージをログに記録するなどのタスクに役立つ任意のオブジェクトの振る舞いを上書きする機会があります。
例:
the frontscriptsを"FileStuff"に設定します -- the frontScriptsを同じスイートの別のスクリプトに設定します