Làm cách nào để nhận giá trị textfield
trong XITODE7 UITesting?cách nhận giá trị của XCUIElement?
var b = XCUIApplication().childrenMatchingType(.textField).elementBoundByIndex(0).stringValue
Làm cách nào để nhận giá trị textfield
trong XITODE7 UITesting?cách nhận giá trị của XCUIElement?
var b = XCUIApplication().childrenMatchingType(.textField).elementBoundByIndex(0).stringValue
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ụ)
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 ...
Tôi hy vọng điều đó sẽ hữu ích.
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
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:
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ữ :)
Tôi không thể upvote đủ! "Po ..." trong lldb là một cuộc sống tiết kiệm! – rhcpfan
Đó cuối cùng ít debug lừa là thực sự hữu ích, cảm ơn! – smac89