", line 1, in 赞 踩 1.NameError变量名错误 解决方案: 先要给a赋值。才能使用它。在实际编写代码过程中,报NameError错误时,查看该变量是否赋值,或者是否有大小写不一致错误,或者说不小心将变量名写错了。 注:在Python中,无需显示变量声明语句,变量在第一次被赋值时自动声明。 2.IndentationError代码缩进错误 IndentationError: expected indent IndentationError: unexpected an indented block IndentationError: unindent does not match any outer indentation level 报错: 原因: 缩进有误,python的缩进非常严格,行首多个空格,少个空格都会报错。这是新手常犯的一个错误,由于不熟悉python编码规则。像def,class,if,for,while等代码块都需要缩进。缩进为四个空格宽度,需要说明一点,不同的文本编辑器中制表符(tab键)代表的空格宽度不一,如果代码需要跨平台或跨编辑器读写,建议不要使用制表符。 解决方案: 3.AttributeError对象属性错误 报错: 原因: sys模块没有Path属性。 解决方案: python对大小写敏感,Path和path代表不同的变量。将Path改为path即可。 使用dir函数查看某个模块的属性 4.TypeError类型错误 4.1入参类型错误 代码: 1 2 3 报错: TypeError: range() integer end argument expected, got tuple. 原因: range()函数期望的入参是整型(integer),但却给的入参为元组(tuple) 解决方案: 将入参元组t改为元组个数整型len(t) 将range(t)改为range(len(t)) 4.2入参个数错误 4.2.1关于元组作为入参 代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 报错: 1 2 3 4 5 原因: 类的函数__init__()需要两个参数,但实际上给了三个。 解决方案: 这里要将EC.visibility_of_element_located(*loc)改为EC.visibility_of_element_located(loc),入参为元组,而不是元组里边的两个值。 python知识拓展: 关于入参*的用法 举例说明: 4.2.2其他 报错: 1 2 3 4 5 6 原因: listdir()函数需要一个入参,但是只给了0个入参。 解决方案: 加一个入参 1 2 python知识拓展: 如何查看某个函数的使用,可以使用help查看。 1 2 3 4 5 6 7 8 9 说明:os.listdir()函数需要一个path路径入参,函数结果返回值是由字符串组成的列表。 4.3非函数却以函数来调用 报错: 1 2 3 4 5 原因: t为元组,元组不能被调用,不能加()。初学者编写代码时,偶尔粗心会将变量当做方法来调用(不小心加了括号)。所以要认真检查下是否变量加了括号,或者方法漏加了括号。 解决方案: 将括号去除。 1 2 5.IOError输入输出错误 5.1文件不存在报错 报错: 1 2 3 4 原因: open()函数没有指明mode,默认为只读方式,如果该目录下没有Hello.py的文件,则会报错,可查看是否拼写有错误,或者是否大小写错误,或者根本不存在这个文件。 解决方案: 该目录下有hello.py文件,打开该文件即可。 1 2 3 4 5 6 7 8 9 10 11 查看python解释器当前路径下有哪些文件: 1 2 5.2因文件权限问题报错 报错: 1 2 3 4 5 6 原因: open("hello.py")如果入参没有加读写模式参数mode,说明默认打开文件的方式为只读方式,而此时又要写入字符,所以权限受限,才会报错。 解决方案: 更改模式 1 2 6.KeyError字典键值错误 报错: 常见报错有,测试一接口,接口返回数据一般是json格式,而测试该接口校验某个值是否正确,如果key拼写错了,就会报KeyError。简单举例如下: 1 2 3 4 5 6 7 解决方案: 访问d中有的键值,如a,b或c。 Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。
新手常见6种的python报错及解决方法_traceback (most recent call last): file "
python知识拓展: t
=
(
'a'
,
'b'
,
'c'
)
for
i
in
range
(t):
print
a[i]
# coding=utf-8
'''
Created on 2016-7-21
@author: Jennifer
Project:显式等待
'''
from
selenium
import
webdriver
from
selenium.webdriver.common.by
import
By
from
selenium.webdriver.support.ui
import
WebDriverWait
from
selenium.webdriver.support
import
expected_conditions as EC
from
time
import
ctime
driver
=
webdriver.Firefox()
driver.get(r
'http://www.baidu.com/'
)
loc
=
(By.
ID
,
'kw'
)
print
ctime()
element
=
WebDriverWait(driver,
5
,
0.5
).until(EC.visibility_of_element_located(
*
loc))
element.send_keys(
'selenium'
)
print
ctime()
driver.quit()
Traceback (most recent call last):
File
"D:\system files\workspace\selenium\autotestcombat\test_4_7_1_webdriverwait.py"
, line
18
,
in
<module>
element
=
WebDriverWait(driver,
5
,
0.5
).until(EC.visibility_of_element_located(
*
loc))
TypeError: __init__() takes exactly
2
arguments (
3
given)
EC.visibility_of_element_located类的入参应该是两个入参: self和元组。但却给了三个参数 self和*loc中的两个元素作为入参。
以元组作为函数入参,如果元组前加*号,说明传递的入参为元组中的各个元素。如果元组前没有加*号,说明传递的入参为元组本身。
loc =(By.NAME,'email')
element1=WebDriverWait(driver,5,0.5).until(EC.visibility_of_element_located(loc)) #只要一个参数(不考虑self情况下),元组loc,即:(By.NAME,'email')。 直接传loc。
element2=driver.find_element(*loc)#需要两个参数,元组loc的元素,即:By.NAME,'email'。直接传*loc >>>
import
os
>>> os.listdir()
Traceback (most recent call last):
File
"<stdin>"
, line
1
,
in
<module>
TypeError: listdir() takes exactly
1
argument (
0
given)
>>> os.listdir(
'/home/autotest'
)
[
'hello.py'
,
'email126pro'
]
>>>
help
(os.listdir)
Help
on built
-
in
function listdir
in
module posix:
listdir(...)
listdir(path)
-
> list_of_strings
Return a
list
containing the names of the entries
in
the directory.
path: path of directory to
list
>>> t
=
(
'a'
,
'b'
,
'c'
)
>>> t()
Traceback (most recent call last):
File
"<stdin>"
, line
1
,
in
<module>
TypeError:
'tuple'
object
is
not
callable
>>> t
(
'a'
,
'b'
,
'c'
)
>>> f
=
open
(
"Hello.py"
)
Traceback (most recent call last):
File
"<stdin>"
, line
1
,
in
<module>
IOError: [Errno
2
] No such
file
or
directory:
'Hello.py'
>>> f
=
open
(
"hello.py"
)
python知识拓展:
如何查看python解释器当前路径:
>>>
import
os
>>> os.getcwd()
'/home/autotest'
>>> os.listdir(
'/home/autotest'
)
[
'hello.py'
,
'email126pro'
]
>>> f
=
open
(
"hello.py"
)
>>> f.write(
"test"
)
Traceback (most recent call last):
File
"<stdin>"
, line
1
,
in
<module>
IOError:
File
not
open
for
writing
>>> f
=
open
(
"hello.py"
,
'w+'
)
>>> f.write(
"test"
)
>>> d
=
{
'a'
:
1
,
'b'
:
2
,
'c'
:
3
}
>>>
print
d[
'a'
]
1
>>>
print
d[
'f'
]
Traceback (most recent call last):
File
"<stdin>"
, line
1
,
in
<module>
KeyError:
'f'