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中的对象拷贝示例 python引用传递
Jan 23 Python
Python字符串替换实例分析
May 11 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
import的本质解析
Oct 30 Python
Python从零开始创建区块链
Mar 06 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 Python
python实现五子棋程序
Apr 24 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
Jan 10 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
dedecms模板标签代码官方参考
2007/03/17 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
Python MD5文件生成码
2009/01/12 Python
python 的列表遍历删除实现代码
2020/04/12 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
python如何安装下载后的模块
2020/07/03 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
历史专业个人求职信范文
2013/12/07 职场文书
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
《影子》教学反思
2014/02/21 职场文书
党的生日演讲稿
2014/09/10 职场文书
2016年寒假见闻
2015/10/10 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
详细了解MVC+proxy
2021/07/09 Java/Android
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL