Python 中的Selenium异常处理实例代码

 更新时间:2018年05月03日 16:36:01   作者:菜鸟可米  
本文通过实例代码给大家介绍了Python 中的Selenium异常处理的相关知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧

自动化测试执行过程中,难免会有错误/异常出现,比如测试脚本没有发现对应元素,则会立刻抛出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)

  运行有异常,结果如下:

  上面代码中用到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)

  运行有异常,结果如下:

  下面将列举selenium常见的异常:

总结

以上所述是小编给大家介绍的Python 中的Selenium异常处理实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • python网络编程之数据传输UDP实例分析

    python网络编程之数据传输UDP实例分析

    这篇文章主要介绍了python网络编程之数据传输UDP实现方法,实例分析了Python基于UDP协议的数据传输实现方法,需要的朋友可以参考下
    2015-05-05
  • Python找出微信上删除你好友的人脚本写法

    Python找出微信上删除你好友的人脚本写法

    在本篇文章中我们给大家分享了Python找出微信上删除你好友的人脚本写法以及相关实例代码,有需要的朋友们参考下。
    2018-11-11
  • Python脚本实现定时监控端口

    Python脚本实现定时监控端口

    这篇文章主要为大家详细介绍了如何使用Python脚本实现定时监控端口功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-03-03
  • Pandas添加行至现有数据框的实现示例

    Pandas添加行至现有数据框的实现示例

    本文主要介绍了Pandas添加行至现有数据框的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • Python 使用 Bert 进行中文情感分析的方法

    Python 使用 Bert 进行中文情感分析的方法

    在自然语言处理(NLP)领域,情感分析是一个非常常见且重要的应用,本文将带领新手使用 BERT 模型进行中文情感分析,并会详细讲解如何加载开源数据集、训练模型、评估准确度,并最终导出模型供未来使用,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • Python模拟登录的多种方法(四种)

    Python模拟登录的多种方法(四种)

    这篇文章主要介绍了Python模拟登录的多种方法,大概给大家提供了四种方法,每种方法给大家介绍的都很详细,感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-06-06
  • Python中模块(Module)和包(Package)的区别详解

    Python中模块(Module)和包(Package)的区别详解

    这篇文章主要介绍了Python中模块(Module)和包(Package)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python实现翻译word表格小程序

    python实现翻译word表格小程序

    这篇文章主要为大家详细介绍了python翻译word表格小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • python实现最短路径的实例方法

    python实现最短路径的实例方法

    在本篇内容里小编给大家整理的是关于python实现最短路径的实例方法,有需要的朋友们可以参考下。
    2020-07-07
  • pycharm console 打印中文为乱码问题及解决

    pycharm console 打印中文为乱码问题及解决

    这篇文章主要介绍了pycharm console 打印中文为乱码问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11

最新评论