2015-05-19 28 views
8

Tôi đang sử dụng Xamarin.UITest để thực hiện tự động hóa trên ứng dụng iOS.Cách nhấn vào nút OK trong hộp thoại quyền được yêu cầu để truy cập ảnh trên iOS bằng Xamarin.UITest?

Vấn đề là: khi truy cập thư viện để tải lên ảnh, có hộp thoại quyền và tôi cần nhấn vào nút "OK" để loại bỏ ảnh đó.

Những cách sau đây mà tôi đã cố gắng, nhưng họ đã không làm việc:

  • Sử dụng lệnh cây không hiển thị hệ thống các hộp thoại, vì vậy mà tôi không thể xác định vị trí các yếu tố giao diện người dùng để tự động hóa

  • Sử dụng iOSApp.InvokeUia("UIATarget.localTarget().frontMostApp().alert().buttons()[\"OK\"].tap()"); này lỗi hiển thị: UIATarget.localTarget().frontMostApp().alert().buttons()["OK"] could not be tapped because the element is not visible [email protected][native code]

  • Sử dụng app.TapCoordinate, có vẻ như nó có thể hoạt động, nhưng phải biết tọa độ chính xác phụ thuộc vào màn hình khác nhau và khi hộp thoại xuất hiện.

Có giải pháp nào để khắc phục sự cố này không? Cảm ơn.

Trả lời

2

thử điều này:.. target.frontMostApp() MainWindow() các yếu tố() [0] .elements() [2] .elements() [1] .tap()

4

Hệ thống hộp thoại cho phép nằm ngoài phạm vi của ứng dụng và sẽ không hiển thị trong tree hoặc bất kỳ truy vấn nào khác mà bạn có thể thực hiện thông qua UITest. Thay vào đó, chúng thường được xử lý tự động bởi calabash. Hành vi "tự động" là chấp nhận bất kỳ hộp thoại quyền nào xuất hiện.

Hộp thoại của bạn có ngôn ngữ khác có thể hiển thị "OK" bằng ngôn ngữ không phải tiếng Anh không? Nếu vậy, chúng tôi có thể cần phải gửi một vấn đề cho miền địa phương cụ thể để nó có thể được thực hiện.

Ngoài ra, hãy đảm bảo bạn có phiên bản UITest mới nhất. Hãy xem các thay đổi cho iOS 10 và InvokeUia here.

+1

Đây là câu hỏi đúng. Tuy nhiên, khi sử dụng Test Recorder, nó không tự động loại bỏ hộp thoại. Tự động OK cũng có nghĩa là bạn không thể thực hiện kiểm tra giao diện người dùng cho các trường hợp người dùng từ chối quyền. – Cheesebaron

+1

Điểm thú vị về XTR, tôi sẽ theo dõi điều đó. Bạn có thể xem xét sử dụng một "backdoor" kỹ thuật cho các đường dẫn khác nhau mà không dựa vào thực sự chấp nhận quyền để bạn có thể chi nhánh hành vi mà bạn muốn kiểm tra. https://developer.xamarin.com/guides/testcloud/uitest/working-with/backdoors/ – therealjohn

+0

Chỉ cần cập nhật cho cuộc thảo luận này. Phiên bản mới của Xamarin Test Recorder thực sự tự động loại bỏ sự cho phép. @PhucThai có lẽ nên chấp nhận câu trả lời này vì đây là câu trả lời đúng nhất. – Cheesebaron

0

Nếu bạn sử dụng Repl(); trong mã của bạn, bạn có thể cố gắng để có được đánh dấu cho nút OK với lệnh cây.

Nếu bạn đang sử dụng Visual Studio Entrerprise Edition, bạn có thể thực hiện các bài kiểm tra dễ dàng hơn nhiều bằng Trình kiểm tra Xamarin, nó hoạt động rất tuyệt vời!

Một điều cần được lưu ý là giao diện người dùng thử nghiệm thường được làm cho ảnh chụp màn hình và kiểm chứng thực bố trí màn hình, chức năng của bạn nên được thử nghiệm với một loại thử nghiệm với khuôn khổ khác hoặc công cụ này.

+1

Điều này không hoạt động. Nút OK không nằm trong cây trực quan cho ứng dụng khi nó được khởi chạy từ hệ điều hành chứ không phải ứng dụng. – Cheesebaron

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