2012-03-14 9 views
1

iOSでUIAutomationのスクリプトを書いています。私はUITableViewをスクロールして記録していますが、同じ記録スクリプトを実行するとviewはスクロールしません。iOSでテーブルビューをスクロールするときにscrollToVisibleが機能しない

「scrollToVisible」を呼び出してスクロールします。たとえば:

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

ものの、それをスクロールしないので、この要素をタップでエラーが発生します。なぜそれが起こっているのですか?

答えて

0

あなたは

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"); 
    } 

)scrollToVisibleを(呼び出す前にはisValidまたは/およびのisVisibleを操作しようとしている要素はまた時々レコーダーが表示されていない要素をキャプチャします。チェックしてみてくださいたとえば、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

関連する問題