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中随机函数random用法实例
Apr 30 Python
Python列表和元组的定义与使用操作示例
Jul 26 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
使用tensorflow实现线性svm
Sep 07 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 Python
python利用tkinter实现屏保
Jul 30 Python
python自动循环定时开关机(非重启)测试
Aug 26 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
Oct 12 Python
Python list运算操作代码实例解析
Jan 20 Python
python实现双人五子棋(终端版)
Dec 30 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 信息采集程序代码
2009/03/17 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
javascript JSON操作入门实例
2010/04/16 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python编程之event对象的用法实例分析
2017/03/23 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
美国知名艺术画网站:Art.com
2017/02/09 全球购物
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
测绘工程系学生的自我评价
2013/11/30 职场文书
大型会议接待方案
2014/03/01 职场文书
继承公证书样本
2014/04/04 职场文书
募捐倡议书
2014/04/14 职场文书
我的老师教学反思
2014/05/01 职场文书
安全施工责任书
2014/08/25 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
Go语言基础函数基本用法及示例详解
2021/11/17 Golang