2015-12-21 23 views
6

Có thể thực hiện kiểm tra giao diện người dùng trên mục tiêu Tiện ích mở rộng hành động không? Tôi không thể tạo mục tiêu thử nghiệm giao diện người dùng với Tiện ích mở rộng hành động làm "Mục tiêu cần được kiểm tra". Tôi cố gắng để tải Extension hành động từ bên trong Safari (hoặc Ảnh, mặc dù Safari/cả hai được ưa thích)Kiểm tra Tiện ích mở rộng hành động với Kiểm tra giao diện người dùng

Nếu tôi ghi lại sự tương tác của tôi, tôi có thể nhận được như xa như:

app.icons["Safari"].tap()

tôi có thể sau đó tự thêm:

XCUIDevice.sharedDevice().pressButton(.Home)

trước khi mã được tạo ra, nhưng nó không hoạt động như mong đợi (giả lập còn lại trên màn hình chủ).

Tôi cũng đã cố gắng:

UIApplication.sharedApplication().openURL(NSURL(string: "https://google.com")!)

nhưng điều đó cũng không mở Safari.

Tôi thậm chí không chắc chắn liệu tôi có thể tương tác tự động với Phần mở rộng hành động không nếu nó được khởi chạy, nhưng hy vọng điều đó là có thể.

+0

có may mắn tìm ra điều này không? Tôi cũng đang thử giao diện người dùng thử nghiệm tiện ích mở rộng hành động – BHendricks

Trả lời

2

Vì vậy, bạn có thể chuyển đổi các ứng dụng bằng XCUITest, nhưng nó không có giấy tờ. Nếu bạn kiểm tra Facebook's WebDriverAgent, họ đã làm một tiêu đề đổ và thực hiện một helper cho tung ra từ bàn đạp. Bạn có thể gọi:

XCUIApplication* safari = [[XCUIApplication alloc] initWithPrivatePath:nil bundleID:@"com.apple.safari"]; 

[safari launch]; 

Sau đó tương tác với Safari giống như bạn làm ứng dụng của bạn. Tuy nhiên, tôi đã chạy vào một vấn đề tương tự, nơi XCUITest sẽ không thực sự khởi chạy phần mở rộng. Khi mở (tức là bạn nhấn vào nút vật lý trên nút tiện ích mở rộng trong khi thử nghiệm đang chạy), nhân viên thử nghiệm hoạt động hoàn hảo và bạn có thể tương tác với tiện ích trong cùng ngữ cảnh với ứng dụng của mình. Tuy nhiên, việc nhấn nút Á hậu thử nghiệm để khởi chạy tiện ích sẽ không làm gì cả. Tôi cũng có một số Apple Dev Forum question về chủ đề này.

Cập nhật:

Hóa ra nếu bạn sử dụng các ứng dụng để nhấn vào màn hình tại vị trí của các nút, phần mở rộng sẽ được tải và bạn có thể tương tác với nó! Lưu ý rằng API để khai thác một tọa độ rất khả quan. X, y là số nhân của khung của thứ mà bạn đã tạo tọa độ. Mã mẫu có liên quan:

// app is your XCUIApplication 
// In this case we are tapping in the horizontal middle and at the y coordinate 603 (this is for a 6+ screen size) 
XCUICoordinate* coordinateOfRowThatLaunchesYourExtension = [app coordinateWithNormalizedOffset:CGVectorMake(0.5, 603.0/736.0)]; 
[coordinateOfRowThatLaunchesYourExtension tap]; 

Điều này sẽ nhấn nút cho tiện ích của bạn trong bảng tác vụ, sau khi bộ chọn tiện ích mở rộng của Apple đã được gọi. Vì bất kỳ lý do/lỗi nào trong XCUITest chỉ cần nhấn ứng dụng của bạn trong trang tính không hoạt động:

[app.sheets.staticTexts[@"MyApp"] tap]; 
Các vấn đề liên quan