我正在编写测试脚本并遇到了这个问题:
ERROR - FAILED - ERROR Message:'NoneType' object is not iterable
代码在这里:
class tc_ID2****(****):
def test_run(self):
case_name = self.__class__.__name__
logger.info("========== Begin of Running Test Case %s ==========" % self.__class__.__name__)
try:
the_list = self.list_objects("main-window")
off_list = self.coveroff(the_list)
if 'lblname' in off_list:
self.assert_(True, case_name)
else:
raise FailException("Can't find the lable")
except Exception, e:
logger.error("FAILED - ERROR Message:" + str(e))
self.assert_(False, case_name)
finally:
self.capture_image(case_name)
self.restore_gui_environment()
logger.info("========== End of Running Test Case: %s ==========" % case_name)
def coveroff(self,the_list):
off_list=[]
for list_unit in the_list:
if isinstance(list_unit,list):
off_list.extend(list_unit)
else:
off_list.append(list_unit)
return off_list
if __name__ == "__main__":
unittest.main()
list_object方法将返回一个两层嵌套列表。
def list_objects(self, window):
logger.info("get objects list in window: %s" % window)
all_objects_list = self.__parse_objects(ldtp.getobjectlist(self.get_locator(window)))
logger.info("sorted all_objects_list: %s" % all_objects_list)
def __parse_objects(self, objects_list):
logger.info("parse objects list")
window_list = []
tab_list = []
button_list = []
table_list = []
text_list = []
menu_list = []
checkbox_list = []
label_list = []
others_list = []
parsed_objects_list = [window_list, tab_list, button_list, table_list, text_list, menu_list, checkbox_list, label_list, others_list]
for item in objects_list:
if item.startswith("frm") or item.startswith("dlg"):
window_list.append(item)
elif item.startswith("ptab"):
tab_list.append(item)
elif item.startswith("btn"):
button_list.append(item)
elif item.startswith("ttbl") or item.startswith("tbl"):
table_list.append(item)
elif item.startswith("txt"):
text_list.append(item)
elif item.startswith("mnu"):
menu_list.append(item)
elif item.startswith("chk"):
checkbox_list.append(item)
elif item.startswith("lbl"):
label_list.append(item)
else:
others_list.append(item)
return parsed_objects_list
但我无法从嵌套列表中找到东西。
所以我创建了一个名为coveroff的方法,使两层列表成为一个简单的列表。
但是这个错误让我失望了。
如何调试此错误?欢迎任何想法!
答案 0 :(得分:0)
在Python中,方法中没有return
语句与返回None
相同。因此,当您希望它返回列表时,您的方法将返回None
,从而返回错误。