2016-04-08 11 views
5

私は約50要素を含むUITableViewを持っています。いつでも、それらのうち6つだけが画面に表示されます。テーブルビューに追加されていないセルを選択したい、またはデータリストから25番目のアイテムを選択する必要があるとします。appiumを使用してIOS UITableviewを自動化

25日要素がまだビューに追加されていないとして、今、私はテーブルビュー

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

しかし、そのは動作していないで、セルをクリックするために、この方法を使用しています。私は、コード内でテーブルビューセルのアクセシビリティ識別子を動的に追加しています。

どうすればこの作品を作成できますか?

*****は、私は2つのテキストビューを表示するテーブルビューセルを持つ******

の詳細を追加しました。通貨ショートネームと通貨ロングネーム。

を例に考えてみましょう

GBP

英国は今、そのテーブルビューセル用のアクセシビリティ識別子が GBPとして設定されている

ポンド。今私は( "GBP")とdriver.scrollTo( "英国のポンド")

どちらのdidntの仕事

driver.scrollToを試してみました。エラーメッセージが表示されます。

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

ありがとうございました。

+1

要素のテキストをご存知ですか? driver.scrollTo( "Text")はiOSの魅力のように機能するためです。 –

+0

X-Pathを試しましたか? xパスのインデックスは、スクロール中に要素にアクセスするのに役立ちます。 – nullpointer

+0

私はそれを選択する前にセルを表示するべきだと思います。 (テーブルビューメソッドで)目的のセルにスクロールする必要がありますし、その後、それを選択してください。セルインデックスを見つけるには、models配列でそのモデルを決定することができます。これは、TableViewがセルを再利用し、実行時に任意のtableViewのセルのAccessibilityIdを変更するためです。 –

答えて

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

文字列ReqN ::あなたの事前に定義された文字列

文字列GetN ::テキストは、各要素のために取得

を[1我々は、forループによって取得され6]はだから、最初のテキスト&試合を取得あなたの定義済みのテキストが見つからない場合は、6つの要素がスワイプします。[6番目の要素から1番目の要素に]スワイプします。新しい6つの要素が得られます&ループが再び実行されます。

Ref。画像Elements & X,Y points

関連する問題