Python大牛看完直称赞,报错秒解决(报错整理)
1.Python:vscode编写python时提示Python(unresolved-import)
在引用自定义模块时,在代码无错的情况下,vscode提示
Python(unresolved-import)
可在vscode的setting.json中添加"python.analysis.disabled":
["unresolved-import"]
以消除该warning
2.selenium中sendkeys()方法输入中文报错之解决方案
python的编码为utf8,直接打印中文都是正常的,但是在使用
selenium的方法sendkeys()发送中文时,会报错提示
UnicodeDecodeError:‘utf8’codec can’t decode byte0xe6 in position 0:
unexpected end of data
解决办法:
sendkeys()发送中文时需要明确指出其编码:
方式1,在中文前加入u
driver.find_element_by_class_name(“s_ipt”).send_keys(u’测试’)
方式2,使用decode()方法
driver.find_element_by_class_name(“s_ipt”).send_keys
(str.decode(‘utf-8’))
3.Parsing Error xml.parsers.expat.ExpatError: not well-formed (invalid token): line X column Y
报这个错误主要还是“转码”的问题,如果xml文件中没有中文,
自然能够输入所需要的数据,但是现在xml文件中有中文。一般
习惯用txt来编辑xml文件进行数据保存,但是在用txt编辑完xml
文件后,直接保存,默认保存的编码方式是ANSI。
问题就出在编码方式,如果我们用UTF-8的编码方式保存后,
重新执行脚本,那么程序执行成功。
解决办法:
把文件用编辑器打开,复制剪贴到http://web.chacuo.net/formatxml
格 式化之后,把格式化之后的内容复制出来,粘贴保存就可以了。
4.Python3+selenium报错处理:
“selenium.common.exceptions.NoAlertPresentException:
Message: No alert is active”
对于弹框各种资料都说通过switch_to.alert属性获取对话框对象,
然后使用该对象的accept()方法点击确认。
但使用该方法,一直报错:
“selenium.common.exceptions.NoAlertPresentException:
Message: No alert is active”
解决办法:
使用switch_to.active_element确认按钮然后点击
element= browser.switch_to_active_element().click()
5.Python+selenium验证部分文本框内容相符即断言成功
分析:只获取部分文本信息“您已登录成功!”即可断言系统登
录成功
登录信息是PI地址和时间,是变量,比较复杂
解决办法:
message=driver.find_element_by_id(‘idvalue’).text
if
message.startswith(您已经登录系统!): print(“登录成功”)
else:
print(“登录失败”)
同理,在编写自动化测试的时候也可类似使用
assertEqual(message.startswith(“您已经登录
系 统!”),True)
6.使用HTMLTestRunner生成的html文件名添加不进去时间戳
now = time.strftime("%Y-%m-%d %H:%M:%S")
filename = 'D:\\python\\test_163email\\test_case\\report\\
'+now+' delete_result.html'
文件名不能带符号‘:’,因此使用time.strftime()时,其内不
能使用‘%H:%M:%S’这种形式
解决办法:
now = time.strftime("%Y-%m-%d %H_%M_%S")
作者:Alyna_C
链接:https://www.jianshu.com/p/8c89403ad826
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业
转载请注明出处。
7.VScode导入urllib.request失败
前提:
urllib包是自带的,不需要安装。第三方库requests安装的路
径与VScode中使用的python版本一致(python3.7.2)。
问题:在终端键入程序的内容,内容正常执行。但是在终端
运行该脚本,提示失败;在VScode上执行脚本,也提示失败。
两处失败的提醒语一样
解决办法:
查看脚本命名为urllib.py,脚本命名冲突。修改脚本命令,验
证通过。
注:脚本命令要特别注意,不能同于库中的文件名字,否则
会出现错误
报错总结
语法错误:
语法错误也叫做解析错误,是指python无法正确的识别代码
的造成的。根本原因在于人的行为:手残,脑残和眼残的行为。
解决方法:按照正确的语法进行书写就没这个错误了!
异常:
IndexError 索引超出序列的范围
KeyError 字典中查找一个不存在的关键字
NameError 尝试访问一个不存在的变量
AssertError 断言语句(assert)失败
IndentationError 缩进错误
下面这些也是常见的异常错误,在报错的时候不要害怕,记住这些常见的单词。
AttributeError 尝试访问未知的对象属性
FloatingPointError 浮点计算错误
GeneratorExit generator.close()方法被调用的时候
ImportError 导入模块失败的时候
EOFError 用户输入文件末尾标志EOF(Ctrl+d)
NotImplementedError 尚未实现的方法
OSError 操作系统产生的异常(例如打开一个不存在的文件)
OverflowError 数值运算超出最大限制
KeyboardInterrupt 用户输入中断键(Ctrl+c)
MemoryError 内存溢出(可通过删除对象释放内存)
SystemError Python编译器系统错误
SystemExit Python编译器进程被关闭
TypeError 不同类型间的无效操作
ReferenceError 弱引用(weak reference)试图访问一个已
经被垃圾回收机制回收了的对象
RuntimeError 一般的运行时错误
StopIteration 迭代器没有更多的值
SyntaxError Python的语法错误
TabError Tab和空格混合使用
UnboundLocalError 访问一个未初始化的本地变量
(NameError的子类)
UnicodeError Unicode相关的错误(ValueError的子类)
UnicodeEncodeError Unicode编码时的错误
(UnicodeError的子类)
UnicodeDecodeError Unicode解码时的错误
(UnicodeError的子类)
UnicodeTranslateError Unicode转换时的错误
(UnicodeError的子类)
ValueError 传入无效的参数
ZeroDivisionError 除数为零
小结:
报错不可怕,不要抓狂,平时做好报错笔记,下次就可以分分钟解决,2021最新Python学习资料免费分享,+Q:2131411691