異常捕捉與錯誤截圖python
建立錯誤截圖文件夾,目錄結果以下:web
用例不可能每一次運行都成功,確定運行時候有不成功的時候,關鍵是咱們捕捉到錯誤,並以把並錯誤截圖保存,這將是一個很是棒的功能,也會給咱們錯誤定位帶來方便。函數
baidu.pyui
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re
class Baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "http://www.baidu.com/"
self.verificationErrors = []
self.accept_next_alert = True
#百度搜索用例
def test_baidu_search(self):
driver = self.driver
driver.get(self.base_url + "/")
try:
#kwddd 是一個沒法找到的元素 id
driver.find_element_by_id("kwdddd").send_keys("selenium webdriver")
except:
driver.get_screenshot_as_file("D:\\selenium_use_case\\error_png\\kw.png")
#若是沒有找到上面的元素就截取當前頁面。
driver.find_element_by_id("su").click()
time.sleep(2)
driver.close()
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
這裏特地把腳本寫錯誤的,使腳本找不到 id 爲 kwddd 的元素,經過 try....except...對異常進行捕捉;並把結果保存下來。再次執行你的腳本會發現 error_png 目錄下面產生了錯誤時候的截圖。url
截圖函數 get_screenshot_as_file
selenium.webdriver.remote.webdriver.get_screenshot_as_file(filename)
截圖當前窗口圖片。若是有任何 IOError 將返回 false ,不然將返回 Ture .
filename: 指定錯誤截圖的存放路徑及圖片名。spa