2012-03-14 1 views
1

iOS에 UIAutomation에 대한 스크립트를 쓰고 있습니다. 인스트루먼트를 통해 UITableView 스크롤을 기록했지만 동일한 녹음 스크립트를 실행하면 view이 스크롤되지 않습니다.iOS에서 테이블 뷰를 스크롤하는 동안 scrollToVisible이 작동하지 않습니다.

스크롤하려면 "scrollToVisible"호출을 호출합니다. 예를 들어 :

target.frontMostApp().mainWindow().scrollViews()[0].tableViews()[0].cells()[3].scrollToVisible();

비록, 그것을 스크롤하지 않으며, 따라서이 요소를 도청에 오류가 있습니다. 왜 그런가? scrollToVisible을 (호출하기 전에 당신이 isValid 및/또는에서 IsVisible을 조작하려는 요소)

var cellToScroll = target.frontMostApp().mainWindow().scrollViews()[0].tableViews()[0].cells()[3]; 

    if (cellToScroll.checkIsValid()) 
    { 
     if (!cellToScroll.isVisible()) 
     { 
      cellToScroll.scrollToVisible(); 
     } 
    // do other actions with object 
    } 
    else 
    { 
     UIALogger.logMessage("object is invalid"); 
    } 

는 또한 때때로 레코더가 보이지 않는 요소를 캡처하는 경우

답변

0

봅니다 확인합니다. 예를 들어 조회수는 2입니다. View1 및 View2. View1에는 scrollView> table> 셀이 있습니다. View2에는 일부 nonAccessible 요소가 있습니다. View2 위에 View2가 표시됩니다. 이 경우 레코더는 View2를 무시하고 view1 요소를 캡처합니다. 이 경우 스크립트를 실행하면 동일한 오류가 발생합니다. checkIsValid()가 true를 반환하면 isVisible()은 false를 반환하고 동일한 오류가 발생하여 cellToScroll.scrollToVisible()에서 스크립트가 실패합니다. 이 경우에는 View2가 표시되는지 또는 이와 비슷한 몇 가지 추가 검증을 수행해야합니다.

-1

나는 얼마 전이 질문을 받았지만 위의 코드는 작동하지 않는다는 것을 알고 있습니다. 이것은 isVisible()이 부울이 아닌 숫자를 반환하기 때문입니다. 페이지에 셀이 표시되는지 확인하려면 isVisible()이 1을 반환하는지 확인해야합니다.

if (cellToScroll.isVisible() == 1) 
{ 
    cellToScroll.scrollToVisible(); 
} 
+0

(0)은 실행되지 않지만 1이면) will will – ekcrisp

관련 문제