2015-10-28 20 views
9

Mã kiểm tra giao diện người dùng sau sẽ khai thác thành công phần tử UISearchBar. Bàn phím phần mềm xuất hiện và thanh tìm kiếm trông giống như nó đã tập trung. (. Tức là nó sinh động như nếu ai đó khai thác nó)Kiểm tra giao diện người dùng XCode 7 - không thể nhập văn bản vào thanh tìm kiếm

let searchBar = XCUIApplication().otherElements["accessibility_label"] 

    searchBar.tap() 
    searchBar.typeText("search text") 

Tuy nhiên, typeText không thành công với:

Testing UI Không - Không yếu tố hay bất kỳ hậu duệ có bàn phím tập trung. Yếu tố:

Lưu ý: Phần cứng-> Bàn phím-> Bàn phím kết nối phần cứng bị tắt. Điều này giải quyết cùng một vấn đề cho các trường văn bản nhưng thanh tìm kiếm vẫn không thành công.

+1

Tại sao bạn sử dụng 'otherElements'? Bạn có thể thử với 'searchBars' không? –

+0

Tôi không thấy phần tử searchBar nhưng tôi đã thử searchFields. Rất tiếc, không tìm thấy kết quả phù hợp nào. Vì vậy, tôi đã sử dụng bộ ghi giao diện người dùng và XCode đã xác định phần tử với các phần bổ sung khác. Dường như là cách duy nhất tôi có thể truy cập nó. Tôi đoán đó là bất thường? Haha. Bạn đã có thể truy cập vào UISearchBar bằng lệnh searchFields chưa? – Stephen

+0

Điều gì sẽ xảy ra khi bạn cố gắng tìm phần tử theo các phương pháp khác nhau? Giống như 'staticTexts()' hoặc 'elementBoundByIndex()'? Đây có phải là mô phỏng iPad hoặc iPhone không? – cakes88

Trả lời

2

tôi đã sử dụng workaround sau thành công:

let firstCell = app.cells.elementBoundByIndex(0) 
let start = firstCell.coordinateWithNormalizedOffset(CGVectorMake(0, 0)) 
let finish = firstCell.coordinateWithNormalizedOffset(CGVectorMake(0, 3)) 
start.pressForDuration(0, thenDragToCoordinate: finish) 

app.searchFields.element.tap() 
app.searchFields.element.typeText("search text") 

này có hiệu quả cuộn thanh tìm kiếm vào xem và vòi nó tập trung, sau đó typeText() có thể được sử dụng.

6

tôi tìm thấy một cái gì đó:

let app = XCUIApplication() 
app.tables.searchFields["Search"].tap() 
app.searchFields["Search"].typeText("something") 

Có vẻ kỳ lạ, nhưng nó làm việc cho tôi.

+0

nhưng nếu tôi muốn xác định searchField bằng cách sử dụng mã định danh có thể truy cập thì sao? Bởi vì nó gây ra vấn đề trong khi chúng tôi cung cấp hỗ trợ đa ngôn ngữ. –

1

Chỉ cần đợi một vài giây và nó sẽ hoạt động!

let searchBar = XCUIApplication().otherElements["accessibility_label"] 
searchBar.tap() 
sleep(5) 
searchBar.typeText("search text") 
Các vấn đề liên quan