2017-09-20 18 views
11

Kể từ khi nâng cấp lên Xcode 9 một số thử nghiệm giao diện người dùng của tôi đã bắt đầu ném một NSInternalInconsistencyException với thông điệpLàm cách nào để tránh NSInternalInconsistencyException khi khai thác trên các phần tử giao diện người dùng bằng XCTest?

Hoạt động không thể được sử dụng sau khi phạm vi của nó đã hoàn thành

Vấn đề xảy ra khi tôi gọi tap() trên XCUIElement. Tôi có thể thấy rằng phần tử là một nút hợp lệ, được kích hoạt.

Bất kỳ trợ giúp nào về sửa chữa hoặc làm việc xung quanh việc này sẽ được nhiều người đánh giá cao!

Phía trên cùng của stack trace cho ngoại lệ là:

0 CoreFoundation      0x00000001035ad1cb __exceptionPreprocess + 171 
1 libobjc.A.dylib      0x0000000102f0ff41 objc_exception_throw + 48 
2 CoreFoundation      0x00000001035b2362 +[NSException raise:format:arguments:] + 98 
3 Foundation       0x00000001029b4089 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193 
4 XCTest        0x00000001027d4018 -[XCActivityRecord _synchronized_ensureValid] + 153 
5 XCTest        0x00000001027d3b0b -[XCActivityRecord _synchronized_addAttachment:] + 39 
6 XCTest        0x00000001027d3c98 -[XCActivityRecord addAttachment:] + 37 
7 XCTest        0x00000001027c0935 -[XCActivityRecord(UITesting) attachAutomaticScreenshot] + 265 
8 XCTest        0x00000001027f84b3 __43-[XCUIElement resolveHandleUIInterruption:]_block_invoke + 1465 
9 XCTest        0x0000000102814788 -[XCTContext _runActivityNamed:type:block:] + 185 
10 XCTest        0x00000001027f7eed -[XCUIElement resolveHandleUIInterruption:] + 139 
11 XCTest        0x000000010282b5d1 __63-[XCUIElement(XCUIElementEventSynthesis) _dispatchEvent:block:]_block_invoke + 81 
12 XCTest        0x0000000102814788 -[XCTContext _runActivityNamed:type:block:] + 185 
13 XCTest        0x000000010282b500 -[XCUIElement(XCUIElementEventSynthesis) _dispatchEvent:block:] + 315 
14 XCTest        0x000000010282d242 -[XCUIElement(XCUIElementTouchEvents) tap] + 
+3

Xin vui lòng gửi mã nguồn nơi hoạt động của bạn được xác định. – Oletha

Trả lời

10

Trong Xcode 9, điều này có thể gây ra do lỗi giữa XCUITest và trình kiểm tra chuỗi chính Xcode 9 mới. Chi tiết khác có trong số this blog post.

Để tạm thời làm việc xung quanh vấn đề này cho đến khi Apple sửa lỗi nó, vô hiệu hóa các chính kiểm tra Chủ đề trong phần thử nghiệm của chương trình của bạn:

enter image description here

0

tôi đã kết thúc sửa chữa điều này bằng cách giữ lại các yếu tố và chỉ sử dụng tài liệu tham khảo cùng với nó cho các cuộc gọi tiếp theo.

XCUIElement *searchBar = self.app.searchFields[@"Search"]; 
[searchBar tap]; 
[searchBar typeText:@"Test Guy"]; 
Các vấn đề liên quan