新手区 脚本执行过程中重复 quit () 该怎么解决呢?

liuyl · 2017年01月16日 · 最后由 liuyl 回复于 2017年01月17日 · 1371 次阅读

def ckid(self, x):
try:
self.driver.find_element_by_id(x)
except:
# saveScreen.saveScreen(self.driver, x)
print
u'未发现' + x
return False
return True


def judgeid(self, x):
if not (self.ckid(x)):
try:
assert self.ckid(x) == True
except:
saveScreen.saveScreen(self.driver, x)
print x + u'没找到'
finally:
self.driver.quit()
else:
None
执行 case 的过程中如果没有找到某个元素,会执行 finally 里的 quit(),但是还有 teardown 里的 quit(),这样会报错,应该怎么改?

共收到 7 条回复 时间 点赞

你既然在 teardown 里有 quit 了,什么在 case 里还要 quit?

如果我在 finally 里把 quit 去掉的话,用例执行的过程中找不到元素会怎么样,直接跳到 teardown 吗

#1 楼 @264768502 多谢 去掉了会是怎么样的结果呢

#2 楼 @liuyl 找不到的话抛异常吧

你用标准的 python unittest 还是用什么?
正常来说,一般的 unittest 框架
setup -> case -> teardown
基本无论 case 发生什么情况,都会执行 teardown 的.
就算 case 有异常,也会抛出来,继续测别的 case,不会因此中断

#5 楼 @264768502 嗯 下次一定规范一些,setup -> case -> teardown,这次就先这样了我自己的公用判断方法里加了 quit,所以 case 里没加 tearDown

#4 楼 @nancy2896 会抛异常的,我的尝试结果是 quit 只能结束 driver 不能结束 case 的执行,至于 tearDown 是什么结果还没尝试

liuyl 关闭了讨论 01月19日 18:59
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册