封装一个截图存储的方法:
如果当前页面有滚动条,这里增加了滚动所有页面展示并截图,如下
def printScreen(self,save_fn):
self.driver.execute_script("""
(function () {
var y = 0;
var step = 100;
window.scroll(0, 0);
function f() {
if (y < document.body.scrollHeight) {
y += step;
window.scroll(0, y);
setTimeout(f, 50);
} else {
window.scroll(0, 0);
document.title += "scroll-done";
}
}
setTimeout(f, 1000);
})();
""")
for i in xrange(30):
if "scroll-done" in self.driver.title:
break
time.sleep(1)
self.driver.save_screenshot(save_fn)
测试用例循环执行,并当出现异常时,截图保存,且把图片名称存储到测试执行记录中
for k in range(0,len(testcaseStepList)):
#执行用例步骤teststep=testcaseStepList[k]
if teststep.__getisrun__()==1:
try:
#设置测试步骤开始执行时间
t=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
teststep.__settestcasestepstarttime__(t)
#执行测试步骤
self.executeTestStep(testsuite,testcase,teststep)
#设置测试步骤结束执行时间
t=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
teststep.__settestcasestependtime__(t)
#设置测试步骤运行结果为"1"成功
teststep.__setresult__(1)
except Exception as e:
#存放异常截图的路径
t=time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
pngname=teststep.__gettestcasename__()+t+".png"
dirpath=os.path.abspath("..")+"\\Testresult\\ExceptPic\\"
save_fn=dirpath+pngname
TestWebDriver().printScreen(save_fn)
#测试步骤的异常截图名称
teststep.__setErrorpic__(pngname)
print teststep.__gettestcasename__(),"-测试步骤执行异常!",('%s' % e)
#设置测试步骤运行结果为"0"成功
teststep.__setresult__(0)