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的Django框架中自定义模版标签的示例
Jul 20 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
正确理解Python中if __name__ == '__main__'
Jan 24 Python
python列表使用实现名字管理系统
Jan 30 Python
Python中@property的理解和使用示例
Jun 11 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
python sorted函数的小练习及解答
Sep 18 Python
Python while循环使用else语句代码实例
Feb 07 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
python 读取、写入txt文件的示例
Sep 27 Python
python高温预警数据获取实例
Jul 23 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
Codeigniter校验ip地址的方法
2015/03/21 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
浅析javascript的return语句
2015/12/15 Javascript
javascript基础知识
2016/06/07 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
python实现弹窗祝福效果
2019/04/07 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
Python调用飞书发送消息的示例
2020/11/10 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
少先队入队活动方案
2014/02/08 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
活动经费申请报告
2015/05/15 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
学校运动会开幕词
2016/03/03 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript