2012-03-26 2 views
0

私はjavascript初心者です。 iOSアプリにはたくさんのボタンがあります。彼らの中には名前に手紙があるものもあります。他のものは単に番号で命名されています。私はUIテストスクリプトを書こうとしています。このスクリプトでは、UIButtonsに対応するUIAElementオブジェクトの配列を表すbuttonsという配列があります。Javascriptの自動型変換は、私のiPhoneオートメーションスクリプトで問題を引き起こしています

私は次のことを行う場合、それは素晴らしい作品:

buttons["clr"].tap(); 

私は、これはタイトル「CLR」とのボタンをタップしたい、そしてそれがありません。

しかし、タイトル「2」のボタンをタップする方法はありません。私は、次の操作を行う場合、それは私のために動作しません:

buttons["2"].tap(); 

は何が起こるかは、システムのいくつかの作品は、配列のインデックス2にあるボタンをタップすることを決定したということです。これは、名前が2のボタンと同じではありません。

誰でも説明できますか?そして、文字列として文字列を扱うように強制する方法はありますか?私はいくつかの変種を試してみましたが、どれも役に立たなかった。

buttons[String(2)].tap(); 

EDIT:2以外にも名前を付けることは可能ですが、厄介です。アプリは電卓で、2はちょうどそのことを行うキーの正しい名前のようです。これらの名前は、障害を持つ人々にアプリを提示するために使用されます。私は詳細をすべて知っているわけではありませんが、「2」は長期的には「2」よりもうまくいくと感じています。

私の配列の配置方法に関する質問には、Apple's UIAElement class経由です。具体的には、次のコードは私の問題を解決し

var buttons=window.buttons(); 
+1

JavaScriptの配列インデックス*は文字列です。 '2'以外の要素に名前をつけることはできますか? – alex

+0

どのように配列にデータを設定していますか? –

答えて

1

で私もUIAElementあるオブジェクトウィンドウを、持っている、と私はそれを取り込みます。しかし、私はまだ根本的な言語問題に興味があります。

あなたは「プレーン」オブジェクトではなく、配列を使用する必要があり
var twoButton = buttons.firstWithPredicate("name=='2'"); 
関連する問題