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实现单线程多任务非阻塞TCP服务端
Jun 13 Python
python中学习K-Means和图片压缩
Nov 20 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
Python标准库笔记struct模块的使用
Feb 22 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
使用Django和Python创建Json response的方法
Mar 26 Python
在python tkinter中Canvas实现进度条显示的方法
Jun 14 Python
python实现可变变量名方法详解
Jul 01 Python
详解Python中的各种转义符\n\r\t
Jul 10 Python
Python的历史与优缺点整理
May 26 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 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 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
python 中文件输入输出及os模块对文件系统的操作方法
2018/08/27 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
python中的协程深入理解
2019/06/10 Python
python实现猜拳游戏
2020/03/04 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
毕业评语大全
2014/05/04 职场文书
教师演讲稿大全
2014/05/16 职场文书
实习协议书
2015/01/27 职场文书
公司会议开幕词
2016/03/03 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
Python操作CSV格式文件的方法大全
2021/07/15 Python
Python实现制作销售数据可视化看板详解
2021/11/27 Python
Python socket如何解析HTTP请求内容
2022/02/12 Python
python图像处理 PIL Image操作实例
2022/04/09 Python