appium入门指南(四)真机调试

一,    打开手机的USB调试模式

二,    连接手机到电脑

   将手机用数据线连接到电脑,并授权USB调试模式。查看连接的效果,在cmd下运行命令:adb devices查看UDID,如下图所示:

三,    启动Appium服务

方法一:cmd命令行启动

   根据查到的UDID启动appium服务,运行命令:

#>appium -a 127.0.0.1 -p 4723  –U  6207febc --no-reset

-U 参数后面跟的一串字符就是手机的UDID,这个是通过第二步查到的。

方法二:appium界面启动

appium入门指南(四)真机调试_第1张图片

四,    测试脚本的编写及运行

# -*- encoding: utf-8 -*-
'''
Created on 2018年12月01日

@author: linhuajian
'''from appium import webdriver
from appium.webdriver.connectiontype import ConnectionType
import time
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '你的安卓版本例如:8.0'
desired_caps['deviceName']="你的UDID"
#desired_caps['appPackage']='com.android.settings'
#desired_caps['appActivity'] = 'com.android.settings.HWSettings'
driver  =  webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)

五、不重复安装 appium setting 和unlock

python 运行上面的demo 这个时候应该会提示安装appium setting 和unlock

appium入门指南(四)真机调试_第2张图片

如何避免下次运行还要安装?

解决方法:

  1、需要手动去修改appium安装路径下的android.js文件,来实现运行首次安装Appium settings和Unclock,之后的运行则无需再次卸载的操作。

  2、android.js的存放路径:D:\Auto Test\appium\Appium\node_modules\appium\lib\devices\android\android.js,说明:D:\Auto Test\appium\为本人的appium存放路径。

  3、android.js文件中找到如下代码

Android.prototype.start = function (cb, onDie) {
  this.launchCb = cb;
  this.uiautomatorExitCb = onDie;
  logger.info("Starting android appium");
  async.series([
    this.initJavaVersion.bind(this),
    this.initAdb.bind(this),
    this.packageAndLaunchActivityFromManifest.bind(this),
    this.initUiautomator.bind(this),
    this.prepareDevice.bind(this),
    this.checkApiLevel.bind(this),
    this.pushStrings.bind(this),
    this.processFromManifest.bind(this),
    this.uninstallApp.bind(this),
    this.installAppForTest.bind(this),
    this.forwardPort.bind(this),
    this.pushAppium.bind(this),
    this.initUnicode.bind(this),
    //this.pushSettingsApp.bind(this),    #手动注释此2行代码,即可解决问题
    //this.pushUnlock.bind(this),
    function (cb) {this.uiautomator.start(cb);}.bind(this),
    this.wakeUp.bind(this),
    this.unlock.bind(this),
    this.getDataDir.bind(this),
    this.setupCompressedLayoutHierarchy.bind(this),
    this.startAppUnderTest.bind(this),
    this.initAutoWebview.bind(this),
    this.setActualCapabilities.bind(this)
  ], function (err) {
    if (err) {
      this.shutdown(function () {
        this.launchCb(err);
      }.bind(this));
    } else {
      this.didLaunch = true;
      this.launchCb(null, this.proxySessionId);
    }
  }.bind(this));
};

六、appium destop 不重复安装 io.appium.uiautomator.server 和 io.appium.uiautomator.server.test

1、跳过安装 io.appium.uiautomator.server 和 io.appium.uiautomator.server.test

desired_caps ['skipServerInstallation']= True
desired_caps ['skipDeviceInitialization']= True

或者:开发者模式关闭使用adb安装应用时需要用户确认

七、高版本报错 command failed shell “ps ‘uiautomator’”

https://blog.csdn.net/qq_30353203/article/details/79555240

 

ios 端口代理

 iproxy 8100 8100

你可能感兴趣的:(appium)