0
  1. 新しい仮想デバイス (Pixel 4、api バージョン 30、Android 11) で Chrome を開き、[Chrome へようこそ] 画面で [同意して続行] をクリックします。
  2. この時点で、Chrome の [同期をオンにする] 画面がオンになり、画面に [いいえ] ボタンが表示されます。
  3. 次に、Macのターミナルに切り替えて実行します adb shell dumpsys activity top

結果には次の行が含まれます。

org.chromium.chrome.browser.signin.AccountSigninView{1080,0-2160,1977}
  android.widget.LinearLayout{0,1790-1080,1977 #7f0b009c app:id/button_bar}
     org.chromium.ui.widget.ButtonCompat{44,44-299,143 #7f0b02d1 app:id/negative_button}

AccountSigninView画面の外側にある座標1080,0-2160,1977を持っていますが、ボタンは画面上に表示されます。この動作は私の電話では再現されません。

質問:

  1. このボタンが実際に表示されており、画面の外に出ていないことをどのように理解できますか?
  2. 通常の電話と同じ動作になるようにエミュレータを調整するにはどうすればよいですか?

更新 1:

実行adb shell uiautomator dumpしてみましたが、画面の境界外にコントロールはありませんが、ボタンの座標はゼロです。

<node
  resource-indroid.chrome:id/negative_button"
  ...
  bounds="[0,0][0,0]"/>
4

2 に答える 2

1

または他のバックエンドを使用するAndroidViewClient/culebraを試すことができます。uiautomator

dump --bounds

同様の状況で(Chromeはすでにセットアップされています)、

...
android.widget.Button com.android.chrome:id/signin_promo_choose_account_button Choose another account ((143, 1900), (937, 2032))
...

したがって、ボタンをクリックするつもりなら、 AndroidViewClient を使用して簡単に行うことができます

vc.findViewWithTextOrRaise(u'Choose another account').touch()
于 2021-11-25T18:34:23.133 に答える