2015-08-05 11 views

Trả lời

9

Giả sử bạn có một Text Field như vậy: (. Tôi đang hardcoding giá trị của nó ở đó ("Văn bản của tôi") vì lợi ích của ví dụ)

enter image description here

Cung cấp cho nó Nhãn trợ năng. Trong trường hợp này, tôi cho nó nhãn "Trường văn bản".

Bây giờ để truy cập giá trị của nó, bạn có thể làm một cái gì đó như:

func testExample() { 

    let app = XCUIApplication()   
    let textField = app.textFields["Text Field"] 
    XCTAssertTrue(textField.value as! String == "My Text") 

    // So basically "textField.value" 
} 

Trên một mặt lưu ý: khi nghi ngờ về cách truy cập các thuộc tính nhất định của một XCUIElement nhất định, tôi phát hiện ra rằng "debugDescription" giúp đỡ rất nhiều. Ví dụ, thiết lập một breakpoint sau khi khai báo tài sản, thực hiện kiểm tra, chờ cho ứng dụng dừng lại ở breakpoint, vào lldb console, gõ "po propertyName.debugDescription", kiểm tra đầu ra ...

enter image description here

Tôi hy vọng điều đó sẽ hữu ích.

+0

Đó cuối cùng ít debug lừa là thực sự hữu ích, cảm ơn! – smac89

2

Hãy giả sử tôi muốn để có được những chuỗi đó được in cho thanh nav của ứng dụng của tôi

enter image description here

Những gì tôi đã làm là tôi đã tạo ra một XCUIElement cho thanh nav của tôi:

XCUIApplication *app = [[XCUIApplication alloc] init]; 
XCUIElement *navBarTitle = [app.navigationBars elementBoundByIndex:0]; 

Sau đó tôi đặt một điểm ngắt sau khi tạo đối tượng navBarTitle và sử dụng bảng điều khiển gỡ lỗi để in ra các chi tiết của đối tượng navBarTitle:

print out

Bạn nhìn thấy trong in ra khỏi debug console rằng có một chính gọi định danh.

Để trích xuất chuỗi từ đối tượng đó, tôi tạo ra một đối tượng NSString bằng cách sử dụng phương pháp sau đây:

NSString *nameofuser = [navBarTitle valueForKey:@"identifier"]; 

tôi đã sử dụng XCUIElement navBarTitle và sau đó sử dụng phương pháp valueForKey. valueForKey trích xuất giá trị chuỗi cho mã định danh khóa.

Bạn có thể đọc lên về phương pháp này ở đây: NSKeyValueCoding

valueForKey là chìa khóa để mở khóa các câu trả lời cho câu hỏi này .... ý định chơi chữ :)

+0

Tôi không thể upvote đủ! "Po ..." trong lldb là một cuộc sống tiết kiệm! – rhcpfan

Các vấn đề liên quan