python - 仅在测试失败时创建屏幕截图

标签 python selenium selenium-webdriver

目前我有一个创建屏幕截图的函数,我在这里调用它

def tearDown(self):
    self.save_screenshot()
    self.driver.quit()

还有一个正在创建的文件夹,用于存储屏幕截图。

我不希望测试通过时发生这种情况。

我必须添加什么才能避免这种情况发生?

感谢大家的帮助

最佳答案

如果您的测试失败,sys.exc_info会有异常(exception)。因此您可以将其用作测试的通过/失败结果:

if sys.exc_info()[0]:
    # 'Test Failed'
else:
    # 'Test Passed'

如果您想在失败时截取屏幕截图:

import unittest
import sys
from selenium import webdriver

class UrlTest(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()

    def test_correct_url(self):
        self.driver.get('https://google.com')
        self.assertTrue('something.com' in self.driver.current_url)

    def tearDown(self):
        if sys.exc_info()[0]:
            self.driver.get_screenshot_as_file('screenshot.png')
        self.driver.quit

if __name__ == '__main__':
    unittest.main()

关于python - 仅在测试失败时创建屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27879640/

相关文章:

javascript - 如何防止 Javascript 改变 Selenium 中的页面?如何下载原始页面源代码?

java - 检查字符串时,until() 中出现 “FluentWait cannot be applied” 错误

python - 权限错误: [Errno 13] Permission denied geckodriver. exe

java - 来自命令行的 NullPointerException,而不是在 IntelliJ 调试器中

java - 使用 Java+Selenium WebDriver 验证页面上的错误消息的强大解决方案

python - 将元组转换为字典

python - 通过lxml python更改xml中的属性值

python - Rest框架如何创建可选的嵌套对象?

python - 在 pip 中获取 zip 文件时出现 403 错误

javascript - C# Selenium 无法定位用 Javascript 编写的隐藏元素