2011-10-20 19 views
6

Tôi rất mới cho iOS UIAutomation, đây là vấn đề tôi đang phải đối mặt vớiiOS UIAutomation: Truy cập subviews tùy chỉnh gia tăng đối với một UIScrollView trong kịch bản tự động hóa

Tôi có phân cấp hình ảnh như dưới đây và muốn truy cập các yếu tố CustomView2 trong tự động hóa sctipt

UIWindow> UIScrollView> CustomView1 (Nhiều)> CustomView2 (Nhiều)

các scrollview có subviews loại CustomView1 và CustomView1 lần lượt có subviews loại CustomView2.

Tôi đã gán thông tin trợ năng cho tất cả các chế độ xem theo thứ bậc, nhưng tôi không thể truy cập các phần tử CustomView2 trong tập lệnh tự động hóa của mình.

Khi tôi thực hiện logElementTree() trên UIScrollView, tất cả những gì tôi nhận được là trường hợp của CustomView2, CustomView2 không nằm trong cấu trúc cây của UIWindow.

Vui lòng đề xuất nếu có bất kỳ điều gì bị thiếu hoặc bất kỳ điều gì xảy ra.

Đây là mã tôi đang sử dụng

var mainWindow = application.mainWindow(); 
var scrollView = mainWindow.scrollViews()[0]; 
var custom1 = scrollView.elements().withName("CustomView1"); 

for(var index=0; index<custom1.length; index++){ 
    currentIndustry.tap(); 
    custom1[index].logElementTree(); 
    var custom2 = custom1[index].elements().withName("CustomView2"); 
    UIALogger.logPass("Custom2 Length : " + custom2.length); 
} 

Cây in bằng custom1 [index] .logElementTree(); không chứa các trường hợp của CustomView2

P.S. Tôi cần phải truy cập vào cả hai yếu tố CustomView1 và CustomView2

+0

Tôi có một câu hỏi tương tự. Hãy thử câu hỏi và câu trả lời của tôi: http://stackoverflow.com/questions/6751566/ui-automation-access-uiviews-inside-uiscrollview – Peres

+0

Cảm ơn bạn @JackyBoy để tham khảo. Điều đó đã giải quyết được vấn đề một phần, tôi cần truy cập cả CustomView1 và CustomView2, bằng cách xóa khả năng truy cập của CustomView1 dường như tôi mất quyền truy cập vào CustomView1. – Ziya

Trả lời

5

Điều này có thể giúp bạn nếu bạn không tìm thấy câu trả lời của bạn đã:

UIAutomation Nested Accessibilty Elements Disappear from Hierarchy

Trong lớp CustomView1 của bạn thực hiện như sau:

- (BOOL)isAccessibilityElement 
{ 
    return NO; 
} 

Điều này sẽ làm cho các thành phần CustomView2 của bạn hiển thị khi bạn logElementTree().

Nếu CustomView2 chứa các phần tử có thể truy cập và về cơ bản là chế độ xem vùng chứa, sau đó triển khai ở trên trong lớp đó và chế độ xem con sẽ trở nên có thể truy cập.

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