首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化中捕获截图

自动化中捕获截图

作者头像
无涯WuYa
发布2018-10-25 16:20:33
1.2K0
发布2018-10-25 16:20:33
举报

在测试运行期间获取错误的截图,一方面可以给自己定位错误测试脚本提供方便,另外一方面,可以和开发人员进行有效的沟通,错误的截图不仅仅如此,它有助于调试测试或者创建测试运行的证据。如下是汇总了seleniumwebdriver带有内置方法在测试执行期间获取截图的方法,见如下:

方法

描述

Example

save_screenshot(filename)

获取当前的屏幕截图且保存

driver.save_screenshot('test.png')

get_screenshot_as_file(filename)

获取当前的屏幕截图,使用完整的路劲

driver.get_screenshot_as_file('result/test.png')

get_screenshot_as_png()

获取当前屏幕截图的二进制文件窗口数据

driver.get_screenshot_as_png()

get_screenshot_as_base64()

获取当前的屏幕截图的base64编码

driver.get_screenshot_as_base64()

1、Save_screenshot():

save_screenshot(filename)是获取当前屏幕的截图,如我们打开http://www.videojs.com/,调用self.driver.save_screenshot('文件名称.png'),就会在当前目录下生成一个图片,该图片是打开窗口的屏幕截图,见实现的测试脚本:

#coding:utf-8

fromselenium import webdriver

fromselenium.webdriver.common.by import By

fromselenium.webdriver.support.ui import WebDriverWait

fromselenium.webdriver.support import expected_conditions

fromselenium.webdriver.common.action_chains import ActionChains

fromselenium.webdriver.common.keys import Keys

importunittest

fromtime import sleep

classdemoTest(unittest.TestCase):

def setUp(self):

self.driver=webdriver.Firefox()

self.driver.maximize_window()

self.driver.implicitly_wait(30)

self.driver.get('http://www.videojs.com/')

def testSavePng(self):

self.driver.save_screenshot('videojs.png')

def tearDown(self):

self.driver.quit()

if__name__=='__main__':

unittest.main(verbosity=2)

2、get_ screenshot_as_file():

get_screenshot_as_file(filename)是保存当前的屏幕截图,并且带有完整的路劲,我们任然已http://www.videojs.com/为实例,来获取屏幕截图:self.driver.get_screenshot_as_file('/path/videojs.png'),见如下实现的测试代码:

#coding:utf-8

fromselenium import webdriver

fromselenium.webdriver.common.by import By

fromselenium.webdriver.support.ui import WebDriverWait

fromselenium.webdriver.support import expected_conditions

fromselenium.webdriver.common.action_chains import ActionChains

fromselenium.webdriver.common.keys import Keys

importunittest

fromtime import sleep

classdemoTest(unittest.TestCase):

def setUp(self):

self.driver=webdriver.Firefox()

self.driver.maximize_window()

self.driver.implicitly_wait(30)

self.driver.get('http://www.videojs.com/')

def testGetScreen(self):

self.driver.get_screenshot_as_file('D:/git/PyCharm/TestCase/report/videojs.png')

def tearDown(self):

self.driver.quit()

if__name__=='__main__':

unittest.main(verbosity=2)

3、get_screenshot_as_png():

get_screenshot_as_png() 是获取当前屏幕的截图二进制的数据,我们任然已http://www.videojs.com/为实例,来获取首页屏幕截图的二进制数据并输出,输出的二进制数据为乱码,测试代码见如下:

#coding:utf-8

fromselenium import webdriver

fromselenium.webdriver.common.by import By

fromselenium.webdriver.support.ui import WebDriverWait

fromselenium.webdriver.support import expected_conditions

fromselenium.webdriver.common.action_chains import ActionChains

fromselenium.webdriver.common.keys import Keys

importunittest

fromtime import sleep

classdemoTest(unittest.TestCase):

def setUp(self):

self.driver=webdriver.Firefox()

self.driver.maximize_window()

self.driver.implicitly_wait(30)

self.driver.get('http://www.videojs.com/')

def testPng(self):

print self.driver.get_screenshot_as_png()

def tearDown(self):

self.driver.quit()

if__name__=='__main__':

unittest.main(verbosity=2)

4、get_screenshot_as_base64():

get_screenshot_as_base64()是获取当前屏幕截图的base64编码,我们已http://www.videojs.com/为例,输出该网站首页的base64的编码,见实现的测试代码:

#coding:utf-8

from selenium import webdriver

from selenium.webdriver.common.byimport By

from selenium.webdriver.support.uiimport WebDriverWait

from selenium.webdriver.support importexpected_conditions

fromselenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.keysimport Keys

import unittest

from time import sleep

class demoTest(unittest.TestCase):

defsetUp(self):

self.driver=webdriver.Firefox()

self.driver.maximize_window()

self.driver.implicitly_wait(30)

self.driver.get('http://www.videojs.com/')

deftestBase64(self):

printself.driver.get_screenshot_as_base64()

deftearDown(self):

self.driver.quit()

if __name__=='__main__':

unittest.main(verbosity=2)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档