from BeautifulReport import BeautifulReport as BR
from selenium import webdriver
'''截圖'''
def screenshot(self, img_name):
"""
:param img_name: 圖片的名字
:return: 以列表形式返回圖片的絕對路徑和名字
"""
# HTML_IMG_TEMPLATE 是保存圖片的html模板,設置了圖片的大小。其實就是將圖片嵌入到html中
HTML_IMG_TEMPLATE = """
<a href="data:image/png;base64, {}">
<img src="data:image/png;base64, {}" width="800px" height="500px"/>
</a>
<br></br>
"""
img_path = self.save_img(img_name) # 調用保存截圖的方法
data = BR.img2base(img_path[0], img_path[1] + '.png') # img_path 是列表,保存了圖片的路徑和名稱。img2base() 方法將圖片轉換為base64格式
print(HTML_IMG_TEMPLATE.format(data, data))
'''保存截圖'''
def save_img(self, img_name):
"""
傳入一個圖片名稱:img_name, 並存儲到默認的文件路徑下
:param img_name: 圖片的名字
:return: 以列表形式返回圖片的絕對路徑和名字
"""
path = os.path.dirname(os.path.dirname(__file__)) + "\\img" # 獲取img目錄的路徑,項目提前建好 img 目錄
self.driver.get_screenshot_as_file('{}\{}.png'.format(os.path.abspath(path), img_name))
return [path, img_name]
"""
以上兩個函數定義完后,在實際操作中,若要在當系統報錯時進行截圖並嵌在html報告中,在對應的測試用例中加上截圖裝飾器即可
進入add_test_img()源碼中,就有解釋
def add_test_img(*pargs):
"""
接受若干個圖片元素, 並展示在測試報告中
:param pargs:
:return:
"""
"""
@BR.add_test_img()
def test_demo(self):
pass