2017-06-28 18 views
0

チュートリアルオーバーレイを持つアプリケーションのページがあります。 appiumに画面をタップしてオーバーレイを取り除き、テストを続行してほしい。何らかの理由で私が送信するタップコマンドは決して起こらず、テストはタイムアウトします。私は、タップを開始するために2秒以上明示的に待っているわけではなく、タップが送信されたと言うことができますが、ちょうど起こらないからです。Appium iOSはテストをフリーズする前に何千もの要素を見つけています

この問題に関してお手伝いいただきありがとうございます。私はすでにこれについて私の開発者と仕事をしようとしていますが、これまでは解決策を考え出すことができませんでした。

Appiumログ(これは瞬間ですappiumプロジェクトがオーバーレイし、複数のユーザーと画面にで実行されます):その可能ならば

[debug] [JSONWP Proxy] Got response with status 200: {"status":0,"id":"446B2970-66EA-4795-846E-250B55EFABC0","value":"","sessionId":"C0E25E26-64C1-4E83-BEB5-5CA7CE029299"} 
[JSONWP Proxy] Replacing sessionId C0E25E26-64C1-4E83-BEB5-5CA7CE029299 with 83022946-db67-4a8c-bdbe-4b1f203a2763 
[HTTP] <-- POST /wd/hub/session/83022946-db67-4a8c-bdbe-4b1f203a2763/element/446B2970-66EA-4795-846E-250B55EFABC0/click 200 548 ms - 118 
[HTTP] --> POST /wd/hub/session/83022946-db67-4a8c-bdbe-4b1f203a2763/touch/perform {"actions":[{"action":"tap","options":{"x":0.5,"y":0.5,"count":1}},{"action":"release"}]} 
[debug] [MJSONWP] Calling AppiumDriver.performTouch() with args: [[{"action":"tap","options":{"x":0.5,"y":0.5,"count":1}},{"action":"release"}],"83022946-db67-4a8c-bdbe-4b1f203a2763"] 
[debug] [XCUITest] Executing command 'performTouch' 
[debug] [XCUITest] Received the following touch action: tap(options={"x":0.5,"y":0.5,"count":1})-release 
[debug] [XCUITest] Found matching gesture: tap 
[debug] [JSONWP Proxy] Proxying [POST /wda/tap/0] to [POST http://localhost:8100/session/C0E25E26-64C1-4E83-BEB5-5CA7CE029299/wda/tap/0] with body: {"x":0.5,"y":0.5} 
[BaseDriver] Shutting down because we waited 60 seconds for a command 
[Appium] Closing session, cause was 'New Command Timeout of 60 seconds expired. Try customizing the timeout using the 'newCommandTimeout' desired capability' 
[Appium] Removing session 7d24454e-3b9f-434c-a43a-d1f301b1802f from our master session list 
[XCUITest] Shutting down sub-processes 
[debug] [XCUITest] Found WDA derived data folder: '/Users/jessefish/Library/Developer/Xcode/DerivedData/WebDriverAgent-brdadhpuduowllgivnnvuygpwhzy' 
[XCUITest] Setting '755' permissions to '/Users/jessefish/Library/Developer/Xcode/DerivedData/WebDriverAgent-brdadhpuduowllgivnnvuygpwhzy/Logs/Test/Attachments' folder 
[debug] [XCUITest] Found WDA derived data folder: '/Users/jessefish/Library/Developer/Xcode/DerivedData/WebDriverAgent-dikkwtrisltbeobjmfvpthwwekvs' 
[XCUITest] Setting '755' permissions to '/Users/jessefish/Library/Developer/Xcode/DerivedData/WebDriverAgent-dikkwtrisltbeobjmfvpthwwekvs/Logs/Test/Attachments' folder 
[debug] [XCUITest] Not clearing log files. Use `clearSystemFiles` capability to turn on. 
[debug] [iOSLog] Stopping iOS log capture 
+0

ログを追加できますか?この情報では、その答えを提供することは困難です。 –

答えて

0

わかりません。 iOSは画面上のアイテムの完全なリストを提供します。したがって、スクロール可能なビューがあり、1000個のアイテムがあるとすると、Appiumは一度に画面に表示されるアイテムはほとんどなくても、すべてのアイテムを取得します。

可能なことは、可能な限りxpathを使用しないようにすることです。そして、すべてのコントロールにオートメーションIDを追加するためのadsk devへ。こうすることで、たとえxpathを使用する必要があるとしても、オートメーションIDに基づいて非常にターゲットを絞ったリストを取得するので、リストを絞り込むことができます。

もう1つのことは(要素が存在するかどうかを確認したい場合のみ)ページソースを1回取得することです。ページソーステキストの値を検索するだけです。これにより、実行が大幅に高速化されますが、要素が存在するかどうかを確認する必要があります。

関連する問題