2017-02-15 77 views
0

將我的appium版本升級到1.6.3後出現此問題。無論何時我使用driver.launchApp();命令,它都會清除應用數據,因此我無法執行下一個特殊情況。如何阻止appium清除Android應用程序數據?

我嘗試設置下面的Desired功能,但每次嘗試啓動應用程序時仍然會清除應用程序數據。

capabilities.setCapability("noReset", "true"); 

所以情況是,我登錄到應用程序然後重新啓動應用程序,並appium清除應用數據,並再次登錄屏幕出現不應該出現。

下面是我們可以清楚看到appium正在清除應用程序數據的日誌。

[debug] [ADB] Running 'C:\Users\Vinod\AndroidSDK\platform-tools\adb.exe' with args: ["-P",5037,"-s","079a1ea4d037eeb7","shell","am","force-stop","PACKAGENAME"] 
[debug] [ADB] Getting connected devices... 
[debug] [ADB] 1 device(s) connected 
[debug] [ADB] Running 'C:\Users\Vinod\AndroidSDK\platform-tools\adb.exe' with args: ["-P",5037,"-s","079a1ea4d037eeb7","shell","pm","clear","PACKAGENAME"] 
[debug] [ADB] Device API level: 23 
[debug] [ADB] Getting connected devices... 
[debug] [ADB] 1 device(s) connected 
[debug] [ADB] Running 'C:\Users\Vinod\AndroidSDK\platform-tools\adb.exe' with args: ["-P",5037,"-s","079a1ea4d037eeb7","shell","am","start","-W","-n","PACKAGENAME/.ui.SplashActivity","-S","-a","android.intent.action.MAIN","-c","android.intent.category.LAUNCHER","-f","0x10200000"] 
+0

它會在應用程序數據再次啓動時清除它。但是你的應用程序代碼處理這些?如果在應用程序寫入代碼被寫入,您應該移動到下一個屏幕。 –

+0

@jiteshmohite你沒有得到我的問題。通過添加appium 1.6,他們添加了(以前的版本沒有清除應用程序數據的代碼)代碼來清除所有本地應用程序數據(包括所有數據庫文件和緩存)。如果所有數據都被清除,移動到下一個屏幕沒有任何意義。 – Vinod

回答

0

確保此功能設置: 雖然這種能力的默認值是假的,它仍然值得一試。

capabilities.setCapability("fullReset", "false"); 

如果不起作用,請提供您項目的代碼示例。

+0

fullReset默認爲false。我沒有爲fullReset設置任何值 – Vinod

+0

然後請分享您的代碼。 –

+0

你想看什麼代碼?它只是driver.launchApp (); – Vinod

0

如果您刪除了driver.launchApp();聲明,那麼它應該是完美的工作。

您不需要調用此方法,因爲appium在啓動具有功能的服務器時爲您執行此操作。

+0

它不是我正在尋找的解決方案。我知道如果我不使用launchApp(),它不會清除數據。但是,我執行的套件中有超過50個測試用例。如果任何測試用例在執行過程中失敗,我需要重新啓動應用程序並從第一個屏幕開始下一個測試。希望你現在清楚。 – Vinod

+0

您是否嘗試在設置 - >開發人員選項中通過USB禁用驗證應用程序(「通過ADB/ADT安裝檢查應用程序是否有害行爲」)。 –

+0

是的,我也嘗試禁用。但沒有任何改變。它的'相同的行爲。 – Vinod

相關問題