2016-04-08 21 views
5

Tôi có UITableView chứa khoảng 50 phần tử. Tại bất kỳ thời điểm nào chỉ có 6 trong số chúng được hiển thị trên màn hình. Tôi muốn chọn một ô không được thêm vào chế độ xem bảng hoặc nói rằng tôi cần chọn mục 25 từ danh sách dữ liệu.Tự động hóa iOS UITableview bằng cách sử dụng appium

Bây giờ tôi đang sử dụng phương pháp này cho cách nhấn vào một ô trong tableview

wait.until(ExpectedConditions.visibilityOf(driver.findElementByAccessibilityId(element))).click(); 

Nhưng nó không làm việc là yếu tố thứ 25 không được thêm vào quan điểm được nêu ra. Xin lưu ý rằng tôi đang thêm số nhận dạng trợ năng cho ô xem bảng một cách linh động trong mã.

Tôi làm cách nào để thực hiện công việc này?

***** Đã thêm chi tiết ******

Tôi có ô xem bảng hiển thị hai chế độ xem văn bản. Tên tiền tệ ngắn và tên tiền tệ dài.

xem xét ví dụ

GBP

Great Britain Pounds

Bây giờ Identifier khả năng tiếp cận cho rằng tế bào tableview được thiết lập như GBP. Bây giờ tôi đã cố gắng

driver.scrollTo ("GBP") và driver.scrollTo ("Great Britain Pounds")

Cả didnt làm việc. Tôi nhận được thông báo lỗi

A element could not be located on the page using the Search parameter 

Cảm ơn.

+1

Bạn có biết văn bản của phần tử không? bởi vì driver.scrollTo ("Văn bản") hoạt động như một nét duyên dáng trong iOS. –

+0

Bạn đã thử X-Path chưa? Chỉ mục trong x-path sẽ giúp bạn truy cập phần tử trong khi cuộn. – nullpointer

+0

Tôi nghĩ bạn nên hiển thị ô trước khi chọn. Có thể bạn nên di chuyển đến ô đích (với phương thức xem bảng), và sau đó thử chọn nó. Để tìm chỉ mục ô, bạn có thể xác định mô hình của nó trong mảng mô hình. Nó cần thiết vì TableView sử dụng lại các ô, và bạn thay đổi AccessibilityId trong thời gian chạy cho bất kỳ ô nào của TableView –

Trả lời

1
String ReqN = "Your required string"; 
    boolean flag = true; 
    while (flag) { 
     for (i=1;i<=6;i++) { 
      String GetN = driver.findElement(By.xpath("//android.widget.HorizontalScrollView/android.widget.LinearLayout[" + i + "]")).getText(); 
      if (GetN.equals(ReqN)) { 
       flag = false; 
       System.out.println("Your result found"); 
      } 
     } 
     if (flag) { 
      driver.swipe(145, 765, 145, 180, 3000); 
     } 
    } 

Chuỗi ReqN :: string được xác định trước của bạn

Chuỗi GetN :: Tiêu đề nhận được cho mỗi yếu tố [1-6 mà chúng tôi nhận được bằng vòng lặp for]

Vì vậy, nó có được văn bản & phù hợp cho lần đầu tiên sáu yếu tố nếu văn bản được xác định trước của bạn không tìm thấy thì nó vuốt từ các trục đã cho [đó là phần tử thứ 6 thành phần tử thứ nhất] .. vì vậy bạn sẽ nhận được sáu phần tử mới & vòng lặp sẽ được thực thi lại.

Ref. Hình ảnh Elements & X,Y points

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