解决:SyntaxError: Non-ASCII character in file

今天尝试用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测试实战:技术、工具和案例》,于涌 王磊 曹向志编著)

时间: 2024-08-25 21:58:16

解决:SyntaxError: Non-ASCII character in file的相关文章

python syntaxerror non ascii character xe5 in file

关于Python报错:SyntaxError: Non-ASCII character '\xe5' in file的解决方法 首先想到是Eclipse 中设置Pydev编码,尝试了下面操作 我们都知道Win7默认编码是GBK,而Ubuntu下面默认是utf-8,有时候我们的代码需要在两个平台下编辑,因此我们有必要设置一下eclipse的编码,当然这并不只用于pydev,android的adt也类似的. 只是主要设置3个地方,打开eclipse的windows-preferences: cont

The US ASCII Character Set 对应码 可以解决 URL中的特殊符号的传输问题

The US ASCII Character Set US ASCII, ANSI X3.4-1986 (ISO 646 International Reference Version) Codes 0 through 31 and 127 (decimal) are unprintable control characters.Code 32 (decimal) is a nonprinting spacing character. Codes 33 through 126 (decimal)

【Python】【解决】UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 1: ordinal not in range(128)

我是转的 http://www.cnblogs.com/QuLory/p/3615584.html 刚用flask写了个小小的程序 程序能跑起来 可是就是访问网页的时候却报标题的错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 1: ordinal not in range(128) Unicode的编码问题,读取文件时使用的编码默认是ascii而不是utf8,所以报错 在代码中加上几句即可: impo

解决方法:Could not load file or assembly 'WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.

最近使用VS2015调试ASP.NET 程序遇到了该问题: 在网上找了很多方法都不能解决,最后自己解决了,方法如下: 在project -> NuGet管理中找到已安装的所有程序:将Web Optimization程序包的版本更改为更低的V1.0版本即可. 现在程序可以正常运行了. 解决方法:Could not load file or assembly 'WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf38

atitit.解决SyntaxError: missing ] after element list"不个object 挡成个str eval ....

atitit.解决SyntaxError: missing ] after element list"不个object  挡成个str eval .... 1. 原因::: 不个object  挡成个str eval ..... 1 2. eval(string) 1 2.1.1. 返回值 1 2.1.2. 说明 2 3. eval和JSON 为什么要加括号? 2 4. JSON格式的名字部分为什么要加引号? 3 5. Json的历史 3 6. 参考 3 这个只是ff错误,ie不错误.. 1. 

创建文件夹并解决解决unicode和ASCII码转换的问题

# -*- coding: UTF-8 -*-import sysimport timeimport os #解决unicode和ASCII码转换的问题reload(sys) #解决unicode和ASCII码转换的问题sys.setdefaultencoding('utf8') #解决unicode和ASCII码转换的问题 context = '''hello world'''f = open("hello.txt", 'a+')f.write(context)f.close()da

解决opensips启动时出现PID file /var/run/opensips.pid does not exist 的错误

启动opensips时报下列错误 [[email protected] opensips]# opensipsctl start INFO: Starting OpenSIPS : ERROR: PID file /var/run/opensips.pid does not exist -- OpenSIPS start failed 查看日志文件 [[email protected] opensips]# tail -f /var/log/messages May 14 15:52:41 Op

python在eclipse 中文报错解决 SyntaxError: Non-ASCII character

原因是在Win7系统的简体中文环境下,默认使用的中文编码格式是GBK格式,而eclipse默认的编码格式为使用所在系统的编码格式.因此需要对eclipse进行默认编码格式的修改. 步骤 打开eclipse,Windows -> Preferences... 左侧导航到general -> Workspace,在右侧的Text file encoding中点击Other,选择UTF-8,点击OK. 步骤2 Windows -> Preferences... 左侧导航到general -&g

Python读文件报错:SyntaxError: Non-ASCII character in file

打开city.py文件时报错 问题原因: 程序中的编码错误,python默认是acii模式,没有支持utf8.如果代码中有汉字 ,就会报错 解决方案: 源代码文件(city.py)第一行添加:#coding:utf-8 特别提示:windows 如果查询无结果,请用 #coding: gbk,并且保证 city.py 开头也有这一行声明. 原文地址:https://www.cnblogs.com/xianhan/p/9029276.html