2016-11-08 5 views
0

最近、私はXcodeのUIテスト機能を使用して機能的な自動テストを書くために、XCode UIテストを学び始めました。アクセシビリティIDなしのXcode UIテストの要素

ネイティブapp要素のテキスト値を読み取る必要があります。私は要素のテキストの助けを借りて要素を得ることができますが、問題はダイナミックであるためテキストを使用できません。アプリの次回の起動後に変更されます。

私はWebDriverとAppiumを使って親子xpathを書くことに取り組むことができます。

誰でもこの問題の解決策を提案できますか?私がapple technology/swiftを初めて使用しているときに、ソリューションのサンプルコードスニペットも投稿してください。

あなたのお手伝いをお待ちしております。

答えて

0

アプリのコードでは、検査する要素にアクセシビリティ識別子を追加し、その識別子を使用してUIテストコード内の要素を探します。

// app code 
let myLabel = UILabel() 
myLabel.accessibilityIdentifier = "myDescriptionLabel" 
// add other label configuration... 

// UI test code 
let app = XCUIApplication() 
let descriptionLabel = app.staticTexts["myDescriptionLabel"] 
let description = descriptionLabel.value as String 
+0

答えていただきありがとうございますが、問題は開発コードを変更できません。 accessiblityIdentifierを持たない多くの要素があります。 (それは "空"です)ので、他の方法を探してみてください。私はdecendentsMatchingまたはcontaingを使うことができることを知っています...しかし、そのユーザーフレンドリーではありません。私はappiumロケータ特にXpathがはるかに優れていると感じる。 –

+0

これはXpathとほぼ同じことをすることができますが、これは非常に脆弱なテクニックであり、アプリケーションを適切にテストできるようにするために、開発者はアクセシビリティIDの追加に数分を投資する必要があります。 'app.staticTexts.element(boundBy:2)'のようなものを使って、画面上の3番目のラベルを取得したり、ビューの階層(例えば、2番目のテーブルのセルの最初のラベル)で絞り込むことができます: 'app.tables .element(boundBy:0).cells.element(boundBy:1).staticTexts.element(boundBy:0) ' – Oletha

+0

これは本当に有益です、オレサに感謝します。 –

関連する問題