Webview101からAppiumで動作不具合

511 views
Skip to first unread message

kakikukeko aiueo

unread,
Jul 22, 2022, 9:38:59 PM7/22/22
to 日本Seleniumユーザーコミュニティ
初めて投稿させていただきます。
仕事で、AppiumーPythonを使用して、自動試験テストスクリプトを書いております。
色々調べたのですが、どうにも解決できず、困っております。

 会社のAndroidスマホ用のアプリのUIテスト用にPythonでテストスクリプトを運用しているのですが、AndroidスマホのWebViewを101に上げたところ、テストスクリプトが途中で止まるようになりました。
 DesktoptoolのInspectorで確認したところ、該当箇所をマウスでタップできず、XPATHが出てこない状態にありました。
 現在のWebview103においても、同様の状態です。Webviewをアンインストールして、古いもの(例えば95あたり)にすると、問題なく認識します。
 Githubを見たり、いろいろなCapabilityを試したり、AppiumをV2系(UIAutometor2を使用)にして試したりしたのですが、ダメでした。
 現状は、該当箇所の座標をタップしてやり過ごすようにしています。
 AppiumはV1系の最新、スマホはAndroid12、Appium-Python-Clientは最新です。
 もし上記のような現象のご経験や、解決の方法をご存じであれば、ご教示いただけると助かります。よろしくお願いいたします。 

Kazuaki Matsuo

unread,
Jul 23, 2022, 3:06:23 AM7/23/22
to 日本Seleniumユーザーコミュニティ
拝見した限りでは、現在行われている該当箇所の座標タップをする、が一時解決策となるように思えます。

WebView周りでは、基本的にAppiumはWebView contextとしてGoogleの提供するchromedriverとAndroid WebViewへのプロキシとして機能していることが多く、具体的な処理はWebView/chromedriverの結果に依存します。WebView contextへ変更した上で期待するXMLが取得できない場合、残念ながらGoogleに報告してWebView/chromedriver側の修正・更新を待つ以外は良い方法はないように思えます。

AppiumとしてはNative contextに切り替えることでWebViewをchromedriver越しではなくシステムの座標ベースで操作できるようにはしています。おそらく今現在の解決策がこちらに該当するかと思います。修正されるまでこちらの座標タップを行う、が現実解となりそうです。

あとは、Espresso driverにして https://github.com/appium/appium-espresso-driver#mobile-mobilewebatoms を利用することも可能かもしれません。
GoogleはEspresso越しにWebViewを操作できる方法も提供しているので、彼らがこちらのメンテに力を入れているのであれば良い結果が得られる可能性もあります。
(ただ、Android側の処理を内部まで詳しく追ってないのですが、WebView/chromedriverと結果は大きく変わらないのでは、と見てはいます...)

松尾

kakikukeko aiueo

unread,
Jul 23, 2022, 7:41:09 AM7/23/22
to 日本Seleniumユーザーコミュニティ
ありがとうございます。
まだ、コードを書きはじめて1年程度ですので、細かいところまで理解しきれておらず、詳細ご解説いただき、大変助かります。
appium側のアップデートで、変化がないか期待していたのですが、これまで収集した情報でも、googleの対応が無いと無理そうだなと感じていました。ただ、仔細を人に説明できず、その点でも困っておりました。
時間のあるときに、espressoやappium2.0の画像認識を試してみたいと思います。

2022年7月23日土曜日 16:06:23 UTC+9 fly.49....@gmail.com:
Reply all
Reply to author
Forward
0 new messages