Python 中的Selenium异常处理实例代码


Posted in Python onMay 03, 2018

自动化测试执行过程中,难免会有错误/异常出现,比如测试脚本没有发现对应元素,则会立刻抛出NoSuchElementException异常。这时不要怕,肯定是测试脚本或者测试环境哪里出错了!那如何处理才是关键?因为一般只是局部有问题,为了让脚本继续执行,so我们可以用try...except...raise捕获异常。该捕获异常后可以打印出相应的异常原因,这样以便于分析异常原因。

下面将举例说明,当异常抛出后将信息打印在控制台,同时截取当前浏览器窗口,作为后续bug的依据给相应开发人员更好下定位问题。代码如下:

import unittest
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException  #导入NoSuchElementException
class ExceptionTest(unittest.TestCase):
  def setUp(self):
    self.driver = webdriver.Chrome()
    self.driver.get("https://www.baidu.com")
  def test_exception(self):
    driver = self.driver
    try:
      search_text = driver.find_element_by_id("ss")
      self.assertEqual('百度一下', search_text.get_attribute("value"))
    except NoSuchElementException:
      file_name = "no_such_element.png"
      #driver.save_screenshot(file_name)
      driver.get_screenshot_as_file(file_name) 
      raise  #抛出异常,注释后则不抛出异常
  def tearDown(self):
    self.driver.quit()
if __name__ == '__main__':
  unittest.main(verbosity=2)

运行有异常,结果如下:

Python 中的Selenium异常处理实例代码

上面代码中用到WebDriver内置的捕获屏幕并保存的方法,如这里的save_screenshot(filename)方法和save_screenshot_as_file(filename)方法,在测试异常抛出时,同时截取浏览器屏幕并以自定义的图片文件名保存在指定路径(上面代码为当前路径)。

又如当一个元素呈现在DOM,但它是不可见的,不能与之进行交互,异常将抛出,以百度首页的登录为例,当元素不能不可见时,抛出ElementNotVisibleException的异常,代码如下:

import unittest
from selenium import webdriver
from selenium.common.exceptions import ElementNotVisibleException  #导入ElementNotVisibleException
class ExceptionTest(unittest.TestCase):
  def setUp(self):
    self.driver = webdriver.Chrome()
    self.driver.get("https://www.baidu.com")
  def test_exception(self):
    driver = self.driver
    try:
      login = driver.find_element_by_name("tj_login")
      login.click()
    except ElementNotVisibleException:
      raise  
  def tearDown(self):
    self.driver.quit()
if __name__ == '__main__':
  unittest.main(verbosity=2)

运行有异常,结果如下:

Python 中的Selenium异常处理实例代码

下面将列举selenium常见的异常:

Python 中的Selenium异常处理实例代码

总结

以上所述是小编给大家介绍的Python 中的Selenium异常处理实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
python中对list去重的多种方法
Sep 18 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
Python @property原理解析和用法实例
Feb 11 Python
Django 返回json数据的实现示例
Mar 05 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
python中np是做什么的
Jul 21 Python
python之np.argmax()及对axis=0或者1的理解
Jun 02 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 Python
Python读写/追加excel文件Demo分享
May 03 #Python
windows下安装Python的XlsxWriter模块方法
May 03 #Python
python使用openpyxl库修改excel表格数据方法
May 03 #Python
python实现跨excel的工作表sheet之间的复制方法
May 03 #Python
Python利用openpyxl库遍历Sheet的实例
May 03 #Python
python实现简单淘宝秒杀功能
May 03 #Python
Python实现的求解最小公倍数算法示例
May 03 #Python
You might like
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
jstree的简单实例
2016/12/01 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python实现Virginia无密钥解密
2019/03/20 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
新学期教师寄语
2014/04/02 职场文书
学校就业推荐信范文
2014/05/19 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
党员先进事迹材料
2014/12/19 职场文书
教师党员自我评价范文
2015/03/04 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
年会主持人开场白台词
2015/05/29 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
Python中request的基本使用解决乱码问题
2022/04/12 Python