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超简单解决约瑟夫环问题
May 12 Python
Python 爬虫爬取指定博客的所有文章
Feb 17 Python
图文详解WinPE下安装Python
May 17 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
python方法生成txt标签文件的实例代码
May 10 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
python默认参数调用方法解析
Feb 09 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 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数据库抽象层 PDO
2011/05/07 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
python实现excel读写数据
2021/03/02 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
用Python解决x的n次方问题
2019/02/08 Python
python算法题 链表反转详解
2019/07/02 Python
python实现TCP文件传输
2020/03/20 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
2014学年自我鉴定
2014/02/23 职场文书
程序员求职信
2014/04/16 职场文书
开幕式邀请函
2015/01/31 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
Python 发送SMTP邮件的简单教程
2021/06/24 Python
Python中22个万用公式的小结
2021/07/21 Python
Android Rxjava3 使用场景详解
2022/04/07 Java/Android
Nginx 常用配置
2022/05/15 Servers