ねえ。
実際には、Appleからの文書(thisとthis)が私が見つけることができる唯一のものです。
あなたの質問については想定している。もちろん、
if(UAITarget.localTarget().frontMostApplication().mainWindow().elements()[0].name() === "beep sound")) {
UIALogger.logPass("Buton Present");
} else {
UIALogger.logFail("Buton Not Present");
};
(要素を()[0])あなたのボタンは、メインウィンドウの下のオブジェクトツリーの最初であることをしてみてください。そうでない場合は、他の要素((要素()3)を呼び出す必要があります。または、(要素(階層深くに呼び出す必要があります)[0] .elements()3)。
キープチェーン内のオブジェクトの1つが存在しない場合、上記のコードは失敗することに注意してくださいチェーン内のすべてのオブジェクトをチェックする必要があるかもしれませんさらに、特定のボタンが存在するだけでなく、 。この場合、上記のコードは次のように見て必要があります。
if(UAITarget.localTarget().frontMostApplication().mainWindow() && UAITarget.localTarget().frontMostApplication().mainWindow().elements()[0] && UAITarget.localTarget().frontMostApplication().mainWindow().elements()[0].withPredicate("name matches 'beep sound'")) {
if(UAITarget.localTarget().frontMostApplication().mainWindow().elements()[0].isVisible()) {
UIALogger.logPass("Buton Present");
} else {
UIALogger.logFail("Buton Present, but Not Visible");
}
} else {
UIALogger.logFail("Buton Not Present");
};
しかし、今可読性、保守性、およびコードの-ity属性の上に苦しむだから私はトンそれをリファクタリングします。 o:
function isButtonWithPredicate (predicate) {
if(UAITarget.localTarget().frontMostApplication().mainWindow() && UAITarget.localTarget().frontMostApplication().mainWindow().elements()[0] && UAITarget.localTarget().frontMostApplication().mainWindow().elements()[0].withPredicate(predicate)) {
return true;
} else {
throw new Error("button not found, predicate: " + predicate);
}
function getButtonWithPredicate (predicate) {
try {
if(isButtonWithPredicate(predicate)) {
return UAITarget.localTarget().frontMostApplication().mainWindow().elements()[0].withPredicate(predicate);
}
} catch (error) {
throw new Error("getButtonWithPredicateError: " + error.message);
};
}
var strpredicate = "name matches 'beep sound'";
var objButton = null;
try{
objButton = getButtonWithPredicate(strPredicate);
if(objButton.isVisible) {
UIALogger.logPass("Buton Present");
};
} catch(error) {
UIALogger.logFail(error.message);
}
もちろん、改善することはできますが、そのアイデアを得る必要があります。ところでapple guide to predicates
P.S.
コードはメモ帳で書かれており、チェックされていないため、解析エラーが含まれている可能性があります。