Appium [已解决] Appium Setting.apk 和 Unlock.apk

roicel · July 28, 2014 · Last by lion replied at November 13, 2017 · 4715 hits

mac下面使用appium,每次启动下面的脚本的时候都会安装Appium Settings 和 Unlock 这两个apk。
麻烦问一下有没有什么方法不要让它每次都安装?

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platforVersion'] = '4.2'
desired_caps['deviceName'] = '***'
desired_caps['appPackage'] = '***'
desired_caps['appActivity'] = '***'

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(5)
buttonNear = driver.find_element_by_xpath('//android.widget.Button[3]')
共收到 13 条回复 时间 点赞
roicel #1 · July 29, 2014 作者

这个没有方法解决吗?

#1楼 @roicel 没有办法,代码里写死了。每次都会安装。

Android.prototype.start = function (cb, onDie) {
this.launchCb = cb;
this.uiautomatorExitCb = onDie;
logger.info("Starting android appium");

if (this.adb === null) {
this.adb = new ADB(this.args);
}

if (this.uiautomator === null) {
this.uiautomator = new UiAutomator(this.adb, this.args);
this.uiautomator.setExitHandler(this.onUiautomatorExit.bind(this));
}

logger.debug("Using fast reset? " + this.args.fastReset);
async.series([
this.prepareDevice.bind(this),
this.packageAndLaunchActivityFromManifest.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), // 这里
this.pushUnlock.bind(this), // 这里
this.uiautomator.start.bind(this.uiautomator),
this.wakeUp.bind(this),
this.unlockScreen.bind(this),
this.getDataDir.bind(this),
this.startApp.bind(this),
this.initAutoWebview.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));
};

#2楼 @lihuazhang 哦 学习了 谢啦

#2楼 @lihuazhang 开始也是感到不解

这块挺坑的。 可以考虑自己加代码优化下。 每次安装挺耗费资源

#2楼 @lihuazhang
我注释掉这两行代码了

this.pushSettingsApp.bind(this), 
this.pushUnlock.bind(this),

这样可以不用每次都安装,没有发现什么大的问题出现,但是这样会有什么弊端?时不时的会出现an element could not be located是不是这个造成的?

#7楼 @lihuazhang
那是desired_caps['noReset'] = True 的原因?

我在改这两个部分之前没有定位不到的问题,改了之后总会出现,把appium关掉重启一下又正常了,不解

#8楼 @xzhan noreset 是说上次测试之后,应用不会重置,还是上次跑完测试时候的样子,。

#9楼 @lihuazhang 就是说我这一次测试完成,noreset,再跑同一个用例的话就会找不到element是么?

#6楼 @xzhan
问一下这是哪个文件,路径是什么,谢谢

#6楼 @xzhan
已经解决了
用cnpm装的,后来卸载用exe安装就知道这个文件了
Appium\node_modules\appium\lib\devices\android\android.js

13Floor has been deleted

看评论是说修改andriod.js文件,可mac上我用的客户端,找不到这个文件啊。楼主已解决是找到这个文件的路径了么?求告知

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up