如果我的鼻子测试失败,如何截取屏幕截图?
问题描述
我正在使用nosetests 运行selenium webdriver 测试.每当鼻子测试失败时,我想捕获屏幕截图.我怎样才能以最有效的方式做到这一点,无论是使用 webdriver、python 还是 nosetests 功能?
I am running selenium webdriver tests with nosetests. I want to capture a screenshot whenever nosetests fail. How can I do it in the most effective way, either by using webdriver, python or nosetests features?
解决方案
我的解决方案
import sys, unittest
from datetime import datetime
class TestCase(unittest.TestCase):
def setUp(self):
some_code
def test_case(self):
blah-blah-blah
def tearDown(self):
if sys.exc_info()[0]: # Returns the info of exception being handled
fail_url = self.driver.current_url
print fail_url
now = datetime.now().strftime('%Y-%m-%d_%H-%M-%S-%f')
self.driver.get_screenshot_as_file('/path/to/file/%s.png' % now) # my tests work in parallel, so I need uniqe file names
fail_screenshot_url = 'http://debugtool/screenshots/%s.png' % now
print fail_screenshot_url
self.driver.quit()
相关文章