2017-10-09 1 views
0

私は単純なユースケースを持っています。アンドロイドアプリ内でボタンを押すと、ブラウザアプリがURLを開きます。Appium:アンドロイドシステムのやりとりを扱う

[開く]ダイアログボックスのポップアップが表示され、ブラウザまたはChromeを選択できます。これを自動化しようとすると

<android.widget.ListView resource-id="android:id/resolver_list"> 
    <android.widget.LinearLayout> 
     <android.widget.ImageView resource-id="android:id/icon"> 
     <android.widget.LinearLayout> 
      <android.widget.TextView resource-id="android:id/text1"> 
    <android.widget.LinearLayout> 
     <android.widget.ImageView resource-id="android:id/icon"> 
     <android.widget.LinearLayout> 
      <android.widget.TextView resource-id="android:id/text1"> 

が、それは些細なことのように思えるはずですが、私のトラブルを引き起こしている:appiumインスペクタで次のようになります

Android Popup: Open with

。 「ブラウザ」と「クロム」の両方のテキストをディスクリートAndroidElementのように取得できますが、実際のオプションを実際に押すことはできません。

私は実際にこれらのものとやりとりすることができますか、それはアンドロイドシステムそのものの一部であるため不可能ですか?

これを理解するために、私のページオブジェクトの設定を次に示します。

@AndroidFindBy(id = "android:id/resolver_list") 
private AndroidElement listParentElement; 

public List<OpenWithOption> getOptions() { 
    /* ... */ 
    List<MobileElement> elements = listParentElement 
      .findElementsById(SYS_ID_PREFIX + "text1"); // Here's where I can only get the text element itself but can't figure out how to get the elements above that. 
    return elements.stream() 
      .map(mobileElement -> new OpenWithOptionImpl(mobileElement.getText(), mobileElement)) 
      .collect(toList()); 
} 

答えて

0

これはルーキーミスでした。ブラウザを選択すると、画面の一番下に「Just Once」または「Always」という選択肢が表示され、気付かなかった。私はあなたが望むブラウザを押すだけでそれを起動すると思った。

enter image description here

関連する問題