期待源码
升级新版本后,报错,之后查看 macaca doctor 提示 没有安装 gradle ,请根据http://blog.csdn.net/u014749862/article/details/48982925 执行安装这个工具
app-inspector 1.2.22 版本更新依然报错。如下:
INSTRUMENTATION_STATUS: numtests=1
INSTRUMENTATION_STATUS: stream=
Error in testStartServer:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.android.uiautomator.client.CommandBase.execute(org.json.JSONObject)' on a null object reference
at com.android.uiautomator.client.Command.handleInput(Command.java:49)
at com.android.uiautomator.client.SocketServer.listen(SocketServer.java:60)
at com.android.uiautomator.client.Initialize.testStartServer(Initialize.java:28)
at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160)
at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96)
at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91)
at com.android.commands.uiautomator.Launcher.main(Launcher.java:83)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
INSTRUMENTATION_STATUS: test=testStartServer
INSTRUMENTATION_STATUS: class=com.android.uiautomator.client.Initialize
INSTRUMENTATION_STATUS: stack=java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.android.uiautomator.client.CommandBase.execute(org.json.JSONObject)' on a null object reference
at com.android.uiautomator.client.Command.handleInput(Command.java:49)
at com.android.uiautomator.client.SocketServer.listen(SocketServer.java:60)
at com.android.uiautomator.client.Initialize.testStartServer(Initialize.java:28)
at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160)
at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96)
at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91)
at com.android.commands.uiautomator.Launcher.main(Launcher.java:83)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
INSTRUMENTATION_STATUS: current=1
INSTRUMENTATION_STATUS_CODE: -1
INSTRUMENTATION_STATUS: stream=
Test results for WatcherResultPrinter=.E
Time: 0.52
FAILURES!!!
Tests run: 1, Failures: 0, Errors: 1
INSTRUMENTATION_STATUS_CODE: -1
这次改动,貌似对 driver.keys 方法对一些密码控件输入框的支持又不是很好了。当同一个页面存在好几个密码输入框时,比如修改密码的场景。最初输入框输入都是 sendkeys 就可以,之后发现 app 密码控件用该方法能定位到输入框但是在输入时,总是自动跳到上一个输入框输入所以改成
JSONObject center1 = (JSONObject) driver.getRect(UpdatePWPageUI.XINMIMASHURU);
int X1 = center1.getIntValue("x")+center1.getIntValue("width")/2;
int Y1 = center1.getIntValue("y")+center1.getIntValue("height")/2;
driver.tap(X1,Y1);
driver.keys(newPWFirst);
用了一段时间没问题,但是现在更新之后发现,用这个方法又会出现以前的问题,输入原始密码后,输入新密码时,自动跳回到原始密码输入框输入新密码。换回去直接用 sendkeys 方法也不行,望官方同学关注一下。
这个待遇看着羡慕,动力满满
用户名邮箱登入不需要注册吗?
像素对比靠谱吗?
不错,已经有二次封装的模型了,
为作者点赞,反思自己五年的测试历程,发现确实走偏了。头两年毫无思路的点点点,之后感觉不对了,开始往性能方向发展,但是实际并没有达到作者所说的深度,也仅限于模拟请求提交以及接口等等。近三年一直没有在某个领域深入下去,而是在迎合公司需要打一枪换一个阵地。从性能,到安全,到自动化。都涉及过,但是都没能够深入。有时候也发现,其实自己也在混日子,一直感觉自己心里很空。难受!还是要拨开云雾前进,谢谢你的文章,让我至少一直在思考的东西有个了结。2016,做自己想做的,学自己想学的,加油!