簡體   English   中英

如何從已經通過appium打開的活動中啟動Android應用

[英]How to launch Android app from already opened activity with appium

我有兩個測試用例:

測試案例1:-在Android應用程序上使用憑據登錄,並到達主屏幕。

測試案例2:-當我啟動該應用程序時,應該顯示主頁而不詢問登錄屏幕。

問題:-當我執行appium腳本時,它以登錄屏幕啟動應用程序並到達主屏幕。但是當我再次使用測試用例2執行腳本時,它再次從登錄屏幕啟動。我已經在使用No Reset選項了。

我需要從主屏幕活動中啟動它。每當我在某些活動中遇到錯誤時,都應該從同一時間在同一活動中啟動它。

實際的問題是,當我運行appium功能時,它會從頭開始啟動應用程序,而我需要它應該來自現有活動。 這怎么可能?

有人可以幫我嗎?

問候高拉夫

你能分享你的睾丸嗎? 您是否在代碼中的某個位置driver.close() @AfterTest driver.close()使用driver.close() ,如果可以,可以將其注釋掉並嘗試。

@BeforeTest
public void setup()
{
    //your setup logic
}

@Test
public void busiLogic()
{
    //business logic
}

@AfterTest
public void tearDown()
{
    //dont put driver.close()
}

這是我的假設,即您正在用testscript代碼關閉驅動程序。 請發布您的代碼。 謝謝

似乎正在發生的事情是您應該使用@BeforeClass@AfterClass時使用@BeforeTest@AfterTest

他們按照他們說的話做。 如果您在appiumDriver中初始化@BeforeTest ,它將每次測試 之前啟動一個新會話。 如果您在AfterTest使用driver.close()driver.quit()關閉/退出會話,則每次測試后 ,它將被拆除,並且不會在下一個測試中出現。

使用@BeforeClass@AfterClass代替。

您可以設置一個@priority系統,以確保按特定順序完成測試。 文檔在這里

希望這可以幫助,

利亞姆

請分享您對以下代碼的看法:

公共課程Test1 {

Web驅動程序博士;

DesiredCapabilities capabilities;

@Test
public void testapp() throws MalformedURLException, InterruptedException {




    File app = new File("D:\\Appium_Automation\\abc.apk");
    capabilities= new DesiredCapabilities();
    capabilities.setCapability("browserName", "");
    capabilities.setCapability("deviceName","samsung-sm_n910g-641dd802");
    capabilities.setCapability("platformVersion","5.0.1");
    capabilities.setCapability("platformName","Android");
    capabilities.setCapability("app",app.getAbsolutePath());
    capabilities.setCapability("apppackage","com.sk.test");
    capabilities.setCapability("appActivity","com.fp.test.test");
    dr = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
    dr.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);


}   

公共課程Test2 {

@Test
public void method1() throws MalformedURLException, InterruptedException {



    //Few line Code


}

公共課程Test3 {

@Test
public void method1() throws MalformedURLException, InterruptedException {


    //Few line Code

}   

第一次,我運行2個類(Test1和Test2),它可以完美地工作並完成套件。 並且腳本狀態為通過。

第二次或運行第二個套件,我想運行Test3類,因此它需要運行Class“ Test1”,但是我希望應用程序不應該重新啟動,並且應該與先前打開的活動一起出現在前台。

請告訴我在第二次運行時應該對Class Test1進行哪些更改,或者需要對appium settimng進行任何更改。我正在使用“不重置”選項

capabilities.setCapability("appActivity","com.fp.test.test");

發生這種情況的原因是,每次您使用此活動啟動應用程序時,只要您請求該應用程序,應用程序都會以登錄屏幕打開,然后嘗試查找該活動,那么每次您啟動該應用程序時,這就像是您的應用程序中的第一個活動(“登錄”屏幕)您可以使用此應用程序進行的首次/登錄活動'https://play.google.com/store/apps/details?id=com.intelloware.apkinfo&hl=en'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM