selenuim+python自学笔记20190221
上一篇 /
下一篇 2019-02-21 09:54:49
继续昨天的异常处理,用一天时间去学习它,我不信我搞不定,学习它的目的是因为我们老师说过,
自动化测试就是让脚本晚上运行,第二天早上来验收结果就行,如果不学会异常处理,程序在执行一半的时候发生错误停止了咋办嘞,所以忍者头痛学吧,元气满满的一天!
一,异常处理机制try...expect
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。
例子:
没有处理异常程序的代码:
#从模块selenuim中导入包webdriver
fromseleniumimportwebdriver
driver=webdriver.Chrome()
#浏览器中输入地址用webdriver.chrome()中的get方法
driver.get('http://www.baidu.com')
driver.implicitly_wait(5)
begin=driver.find_element_by_id('k')
begin.send_keys('hello')
有处理异常程序的代码:
#从模块selenuim中导入包webdriver
fromseleniumimportwebdriver
#选择浏览器谷歌
driver=webdriver.Chrome()
#浏览器中输入地址用webdriver.chrome()中的get方法
driver.get('http://www.baidu.com')
driver.implicitly_wait(5)
try:
begin=driver.find_element_by_id('k')
print("加载成功")
except:
print("加载失败")
else:
#输入内容
begin.send_keys('hello')
判断定位id是否定位成功,但这还是会结束程序,这不是我的最终目的,只是去学习一下这个try机制。
1,try/expect...else语法:
try: 对*的解释如下:
**** #需要检查的代码
expect **: #引发异常的名称(注:它有很多标准的异常类型,可能需要 你去推断一下你的代码如果出错,最大可能应该是属于哪种 出错类型,这需要有经验或者很熟悉python的异常类型 是哪些做。我现在做不到。)
****
expect **: #它可以判断多个类型的异常,expect可以一直往后加
****
expect **,**: #前一个是异常的名称,后一个表示出现异常后会获得附加 的数据
****
expect:
**** #expect后面什么都没有,表示所有异常它都会去一一去对照。目前我就适合这种。。。注意:expect **:必须在expect:前面。
else:
**** #如果没有异常会执行的代码,else是和expect搭档的,没有expect便无esle
finally:
**** #在任何地方终止代码后都会继续执行finally模块。
2,expect后面如果没有异常类型的话(expect:)它会直接忽略或者跳过这个错误,不会告诉别人这儿有发生错误,而有一个名称囊括了所有的基类,它的原理和expect:没有区别,只是出现异常后它可以打印异常,告诉别人这儿发生了异常,说白了跟print有关,有名字可以打印,没名字打印不了。它是 BaseException (所有异常的基类)
try:
****
expect BaseException as BE: #as的作用就是用BE代表BaseException
print(BE) #打印出现的异常,但它不会告诉你是哪种异常。
else:
****
注:可以没有else
收藏
举报
TAG: