XCODE7UITestingでtextfield
の値を取得するにはどうすればよいですか?
var b = XCUIApplication().childrenMatchingType(.textField).elementBoundByIndex(0).stringValue
次のようなテキストフィールドがあるとします。
(例として、その値( "My Text")をハードコーディングしています。)
アクセシビリティラベルを付けます。この場合、「テキストフィールド」ラベルを付けています。
その値にアクセスするには、次のようにします。
func testExample() {
let app = XCUIApplication()
let textField = app.textFields["Text Field"]
XCTAssertTrue(textField.value as! String == "My Text")
// So basically "textField.value"
}
ちなみに、特定のXCUIElementの特定のプロパティにアクセスする方法がわからない場合は、「 debugDescription "が非常に役立つことがわかりました。
たとえば、プロパティ宣言の後にブレークポイントを設定し、テストを実行し、アプリがブレークポイントで停止するのを待ち、lldbコンソールに移動し、「po propertyName.debugDescription」と入力して、出力を確認します。
それがお役に立てば幸いです。
アプリのナビゲーションバーに出力される文字列を取得したいとします。
私がしたことは、ナビゲーションバー用のXCUIElementを作成したことです。
XCUIApplication *app = [[XCUIApplication alloc] init];
XCUIElement *navBarTitle = [app.navigationBars elementBoundByIndex:0];
次に、navBarTitleオブジェクトの作成後にブレークポイントを設定し、デバッグコンソールを使用してnavBarTitleオブジェクトの詳細を出力しました。
デバッグコンソールの出力に、key called identifierがあることがわかります。
そのオブジェクトからその文字列を抽出するために、次のメソッドを使用してNSStringオブジェクトを作成しました。
NSString *nameofuser = [navBarTitle valueForKey:@"identifier"];
XCUIElement navBarTitleを使用してから、メソッドvalueForKeyを使用しました。 valueForKeyは、キー識別子の文字列値を抽出します。
このメソッドについては、ここで読むことができます: NSKeyValueCoding
valueForKeyは、この質問への答えを解き放つための鍵です....しゃれが意図されています:)