• 最后试了一下,使用 ant 打包成功了,也最终实现了。(虽然不明白为何 mvn 打出的 jar 包不可以。。。),谢谢大佬指点~🤗

  • 1、已经运行过了,还是不执行的。
    2、通过观察运行的 log:

     runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap
    INSTRUMENTATION_STATUS: numtests=1
    INSTRUMENTATION_STATUS: stream=
    io.appium.android.bootstrap.Bootstrap:
    INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
    INSTRUMENTATION_STATUS: test=testRunServer
    INSTRUMENTATION_STATUS: class=io.appium.android.bootstrap.Bootstrap
    INSTRUMENTATION_STATUS: current=1
    INSTRUMENTATION_STATUS_CODE: 1
    [APPIUM-UIAUTO] [debug] Socket opened on port 4724[/APPIUM-UIAUTO]
    [APPIUM-UIAUTO] [debug] Appium Socket Server Ready[/APPIUM-UIAUTO]
    [APPIUM-UIAUTO] [debug] Loading json...[/APPIUM-UIAUTO]
    [APPIUM-UIAUTO] [debug] Registered crash watchers.[/APPIUM-UIAUTO]
    

    但是我在 bootstrap 中对这些字符打印也做过修改,实际根据控制台打印判断应该是没生效:

      public SocketServer(final int port) throws SocketServerException {
        keepListening = true;
        executor = new AndroidCommandExecutor();
        try {
          server = new ServerSocket(port);
          Logger.debug("**Socket opened on port " + port);
          ...
    }
    
    public void listenForever(boolean disableAndroidWatchers, boolean acceptSSLCerts) throws SocketServerException {
        Logger.debug("**Appium Socket Server Ready");
        ...
    }
    

    3、目前疑惑点:
    1)根据 bootstrap 源码 git 项目中 readme 操作,但是执行 mvn install -P 4.4 出现报错,但是 bootstrap 可以正常导入 android.4.4.2_r4 了。项目也不报错了,不知道对于最终的 jar 包有没有影响?

    [INFO] Android Add-Ons .................................... SUCCESS [  0.016 s]
    [INFO] Android Add-On Google Platform 4.4 API 19 (Maps and USB) FAILURE [  0.078
    s]
    [INFO] Google Glass Development Kit (GDK) API 19 .......... SKIPPED
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 6.501 s
    [INFO] Finished at: 2017-06-28T09:16:38+08:00
    [INFO] Final Memory: 22M/620M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.codehaus.mojo:properties-maven-plugin:1.0.0:re
    ad-project-properties (default) on project google-apis-19: Properties could not b
    e loaded from File: D:\tools\Android\newSDK\add-ons\addon-google_apis-google-19\s
    ource.properties -> [Help 1]
    

    2)还有就是 appium 自动打 bootstrap 的 jar 时机是在什么时候?想着是不是可以重新叫 appium 来打 jar 包

  • 1、在 bootstrap.java->server.listenForever->dismissCrashAlerts->registerAnrAndCrashWatchers 中添加一个监听:

        UiDevice.getInstance().registerWatcher("WIFI", new UiWatcher() {
          @Override
          public boolean checkForCondition() {
            Logger.debug("WIFI 不稳定!");
    //        UiObject window = new UiObject(new UiSelector().textContains("等一会"));
            UiObject window = new UiObject(new UiSelector().resourceId("com.xxx:id/tvAlert"));
            if (window.exists()){
              try {
                window.click();//点击等一会
              } catch (UiObjectNotFoundException e) {
                Log.e(LOG_TAG, "dialog gone?", e);
              }
              return true;
            }
            return false;
          }
        });
        Log.i(LOG_TAG, "Registed GUI Exception watchers");
      }
    

    2、反编译出来后修改的内容时存在的

  • 已经找到出错的原因了。是因为我测试的 app 不是微信(只是测试我的 apk 跳转到微信的 webview 页面点击操作),可能是当前测试应用和配置的 webview 的那个 driver 不相匹配而失败的。如果这不是根本原因还请大家指正

  • 大家有遇到这个错误么,求帮忙解决一下:WebDriverException: An unknown server-side error occurred while processing the command. Original error: session not created exception: please close 'com.tencent.mm' and try again
    我的代码:driver.context("WEBVIEW_com.tencent.mm:tools")(使用这个 driver)

    我的 chromeDriver 版本:

    异常信息:

    Appium 出错信息:

  • 解决啦,webElement 获取文本使用 element.getAttribute("text") 就可以啦

  • 请问一下,对 toast 获取的对象调用 getText 的时候,出现以下报错,是什么原因呢?