【问题标题】:Issue in Appium java Configuration for Android on Windows 7 environmentWindows 7 环境中 Android 的 Appium java 配置问题
【发布时间】:2013-10-02 00:12:37
【问题描述】:

我是 appium 和 android 自动化的新手 但是,从不同的博客中,我已经能够开始使用 Java 在 W7 环境中为 Android 自动化配置 Appium 但是,不知何故,我的TestNG java 脚本没有在 android 模拟器中启动 .apk 文件 以下是appium 服务器显示的日志的最后几行:-

调试:在 /wd/hub/session/e4d57ac4-83df-448f-a825-dc985 发起的 Appium 请求 4de0ed6
信息:关闭 appium 会话...
信息:[ADB] 按下 HOME 键
info: 已发送关机命令,等待 ADB 停止...
信息:停止 logcat 捕获
警告:Android 没有足够快地关闭,称之为消失
信息:[ADB] 由于服务器未使用 --full-reset 启动,因此未卸载应用程序
信息:清除 appium 设备
信息:成功响应客户端:{"status":0,"value":null,"sessionId":"e 4d57ac4-83df-448f-a825-dc9854de0ed6"}
删除 /wd/hub/session/e4d57ac4-83df-448f-a825-dc9854de0ed6 200 7533ms - 89

下面是我的java代码:-

           @BeforeMethod

           public void setup() {

           File appDir = new File("E:/Softwares/AppToBeTested");

           File app = new File(appDir, "ContactManager.apk");

           DesiredCapabilities capabilities = new DesiredCapabilities();

           capabilities.setCapability("device","Android");

           capabilities.setCapability(CapabilityType.BROWSER_NAME, "");

           capabilities.setCapability(CapabilityType.VERSION, "4.2.2");

           capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");


          // capabilities.setCapability("app-package","com.deo.mobile1");
          capabilities.setCapability("app-package","com.example.android.contactmanager");

            //Here we mention the activity name, which is invoked initially as app's first page.

         // capabilities.setCapability("app-activity",".StartupActivity");
         capabilities.setCapability("app-activity",".ContactManager");

         //capabilities.setCapability("app-wait-activity","LoginActivity,NewAccountActivity");

         capabilities.setCapability("app", app.getAbsolutePath());

         try {
   driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
         } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
  e.printStackTrace();
        }

        driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);  


        }

       @Test

       public void loginTest() throws Exception 
       {
       System.out.println("Hello");

       }

       @AfterMethod

       public void tearDown() 
       {

           driver.quit();

       }    

注意:- 我可以看到 android 模拟器导航到主屏幕,但之后没有任何反应 我已经在模拟器中安装了 ContactManager.apk

【问题讨论】:

  • 您好,上述问题现已解决。但是,现在我面临另一个问题......我收到以下错误:-org.openqa.selenium.remote.SessionNotFoundException:会话已终止或未启动(原始错误:用于启动应用程序的活动不存在!制作确保它存在)(警告:服务器未提供任何堆栈跟踪信息)
  • 你应该先启动 appium 服务器,如果会话终止了上面的消息。关闭所有 Adb rerun appium server 实例和运行测试脚本。希望这会有所帮助

标签: java android appium


【解决方案1】:

如果您收到 SessionNotFoundException ,则表明您没有正确设置会话。你是如何开始 Appium 的?

我自己使用的是 Windows 7,我写了一个小批处理脚本来启动 Appium:

@ECHO OFF

cd C:\Users\<username>\AppData\Roaming\npm\node_modules\appium

node server.js --app "<path-to-your-project>\bin\AppName.apk"

我通过 npm 安装了 Appium,如果你从他们的页面下载了 Windows 包,server.js 应该位于带有 Appium 内容的“程序文件”文件夹中的某个位置。

像这样启动 appium 后,您应该能够检索该会话并执行命令。

如果这对你有帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2012-03-29
    • 2011-11-25
    • 2016-03-16
    相关资源
    最近更新 更多