码迷,mamicode.com
首页 > 其他好文 > 详细

解决:SyntaxError: Non-ASCII character in file

时间:2017-09-24 00:33:32      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:ges   rac   精通   移动app   中文   nbsp   ini   html   div   

今天尝试用monkeyrunner脚本在夜神模拟器上安装并截图QQ,但是遇到了一些问题:

 1 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
 2 
 3 
 4 #连接模拟器
 5 device = MonkeyRunner.waitForConnection()
 6 
 7 #打开锁屏
 8 device.drag((355,1061),(621,1061),3,1)
 9 
10 #安装QQ
11 device.installPackage("F:\\QQ_730.apk")
12 MonkeyRunner.sleep(8)
13 
14 #启动QQ
15 device.startActivity(component="com.tencent.mobileqq/.activity.LoginActivity")
16 MonkeyRunner.sleep(5)
17 
18 #点击登录
19 device.touch(180,1170,"DOWN_AND_UP")
20 MonkeyRunner.sleep(3)
21 
22 #保存截图
23 result = device.takeSnapshot()
24 result.writeToFile("qq.png","png")

无奈刚开始就报错了。

技术分享

"SyntaxError: Non-ASCII character in file ‘C:\Users\Administrator\qq.py‘

这是一个语法错误,原因可能是我们脚本的注释用的是中文。我们可以在脚本开始加上#-*-coding:utf-8-*-

 1 #-*-coding:utf-8-*-
 2 
 3 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
 4 
 5 
 6 #连接模拟器
 7 device = MonkeyRunner.waitForConnection()
 8 
 9 #打开锁屏
10 device.drag((355,1061),(621,1061),3,1)
11 
12 #安装QQ
13 device.installPackage("F:\\QQ_730.apk")
14 MonkeyRunner.sleep(8)
15 
16 #启动QQ
17 device.startActivity(component="com.tencent.mobileqq/.activity.LoginActivity")
18 MonkeyRunner.sleep(5)
19 
20 #点击登录
21 device.touch(180,1170,"DOWN_AND_UP")
22 MonkeyRunner.sleep(3)
23 
24 #保存截图
25 result = device.takeSnapshot()
26 result.writeToFile("qq.png","png")

可是,又报错了:

技术分享

再次尝试:

 1 import sys
 2 reload(sys)
 3 sys.setdefaultencoding("utf-8")
 4 
 5 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
 6 
 7 
 8 #连接模拟器
 9 device = MonkeyRunner.waitForConnection()
10 
11 #打开锁屏
12 device.drag((355,1061),(621,1061),3,1)
13 
14 #安装QQ
15 device.installPackage("F:\\QQ_730.apk")
16 MonkeyRunner.sleep(8)
17 
18 #启动QQ
19 device.startActivity(component="com.tencent.mobileqq/.activity.LoginActivity")
20 MonkeyRunner.sleep(5)
21 
22 #点击登录
23 device.touch(180,1170,"DOWN_AND_UP")
24 MonkeyRunner.sleep(3)
25 
26 #保存图片
27 result = device.takeSnapshot()
28 result.writeToFile("qq.png","png")

值得注意的两点是:

1.  检查夜神模拟器有没有连上:adb devices

如果没有连上,用adb connect 127.0.0.1:62001连接,再用adb devices检查。(详见lynnLi的博客monkeyrunner之夜神模拟器的安装与使用(二)

2.  一定要用好MonkeyRunner.sleep()

在实际的测试过程中,有的时候发现脚本业务逻辑是正确的,可是不知道为什么一旦执行起来结果却是错误的,那么有一种可能就是你的操作过快,导致界面元素没有完全展示出来就开始了后续操作,从而引起的问题。(引自《精通移动App测试实战:技术、工具和案例》,于涌 王磊 曹向志编著)

解决:SyntaxError: Non-ASCII character in file

标签:ges   rac   精通   移动app   中文   nbsp   ini   html   div   

原文地址:http://www.cnblogs.com/cnhkzyy/p/7583447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!