捕获Selenium和Python的输出

时间:2016-11-02 05:59:31

标签: python python-2.7 selenium

我是python和测试新手。我必须做自动化测试。我使用以下代码来测试我的webApplication。我可以使用excel读取输入数据,并使用编程逻辑将测试输出写为Pass或Fail,而不使用Assert。

当我使用assert时,我在控制台中获得输出,但是我无法捕获它,因此我无法将其推送到excel中。

我正在使用的代码是

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
import unittest
import os

error = "Houstan you got some error"
assert 2 + 2 == 5, 'error'

在控制台中输出

xample$ python assert.py
Traceback (most recent call last):
 File "assert.py", line 10, in <module>
   assert 2 + 2 == 5, error
AssertionError: Houstan you got some error

有人可以帮助我在某个变量中捕获此输出,以便我可以以有条理的方式将它们推送到excel中。可能是数据可以存储在不同的变量或列表中。

testdoc.xls

文件-----------行------错误

断言 - 10 --- ----侯斯坦你有一些错误

2 个答案:

答案 0 :(得分:0)

考虑使用日志库。

import logging

logging.basicConfig(filename='foo.log',
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    level=logging.INFO)
try:
    2 + 2 == 5
except Exception as e:
    logging.error('error msg', exc_info=True)

答案 1 :(得分:0)

https://tomcat.apache.org/connectors-doc/reference/workers.html模块对于格式化和处理错误信息很有用。例如

import unittest
import os
import traceback

try:
    error = "Houstan you got some error"
    assert 2 + 2 == 5, 'error'
except Exception:
    var = traceback.format_exc()
    # now your traceback is in the variable var
    print ('not failed', var)
    # process the var as you want, then re raise the error
    raise

doc充满了示例