Python selenium 生成測(cè)試報(bào)告(HTMLTestRunner)

Python selenium

生成測(cè)試報(bào)告(HTMLTestRunner)

  1. 下載HTMLTestRunner.py文件捧弃,通過(guò)此文件生成測(cè)試報(bào)告

  2. 將文件放到...\Python27\Lib目錄下(windows)

  3. 可以通過(guò)dir(HTMLTestRunner)查看包含哪些方法

    >>> import HTMLTestRunner
    >>> dir(HTMLTestRunner)
    ['HTMLTestRunner', 'OutputRedirector', 'StringIO', 'Template_mixin', 'TestProgram', 'TestResult', 
    '_TestResult', '__author__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 
    '__version__', 'datetime', 'main', 'saxutils', 'stderr_redirector', 'stdout_redirector', 'sys', 'time', 
    'unittest']
    
  4. 下面可以在用例中添加可以生成報(bào)告的代碼

     #coding:utf-8
     from selenium import webdriver
     from selenium.webdriver.support.ui import Select
     import unittest, time
     import HTMLTestRunner
    
     class Baidu(unittest.TestCase):
         def setUp(self):  # 用于設(shè)置初始化的部分
             self.driver = webdriver.Firefox()
             self.driver.implicitly_wait(30) # 隱性等待赠叼,最長(zhǎng)等30秒
             self.base_url = "http://www.baidu.com"
             self.verificationErrors = []    # 腳本運(yùn)行時(shí),錯(cuò)誤的信息將被打印到這個(gè)列表中违霞。
             self.accept_next_alert = True  # 是否繼續(xù)接受下一個(gè)警告
     
         def test_baidu_serach(self):
             driver = self.driver
             driver.get(self.base_url + "/")
             driver.find_element_by_id("kw").send_keys("Selenium webdriver")
             driver.find_element_by_id("su").click()
             time.sleep(2)
             driver.close()
     
     
         def test_baidu_set(self):
             driver = self.driver
             driver.get(self.base_url + "/gaoji/preferences.html")  # 進(jìn)入搜索設(shè)置頁(yè)
     
             Select(driver.find_element_by_id("nr")).select_by_visible_text(u"每頁(yè)顯示10條")
             time.sleep(2)
             driver.find_element_by_id("save").click()
             time.sleep(2)
             # driver.switch_to_alert().accept()  # 此方法即將棄用嘴办。
             driver.switch_to.alert.accept()  
             time.sleep(2)
             # 保存百度的設(shè)置時(shí)會(huì)會(huì)彈出一個(gè)確定按鈕;我們并沒(méi)按照常規(guī)的方法去定位彈窗上的“確定”按鈕买鸽,而是使用switch_to.alert.accept() 
             
         def tearDown(self):
             self.driver.quit()
             self.assertEqual([], self.verificationErrors)
     
     if __name__ == "__main__":
         testunit = unittest.TestSuite()  # 定義一個(gè)單元測(cè)試容器
         testunit.addTest(Baidu("test_baidu_serach"))  # 將測(cè)試用例加入到測(cè)試容器中
         testunit.addTest(Baidu("test_baidu_set"))
         filename = 'D:\\result.html'  # 定義個(gè)報(bào)告存放路徑涧郊,支持相對(duì)路徑。
         fp = file(filename, 'wb')
         runner = HTMLTestRunner.HTMLTestRunner(
             stream=fp,
             title='Report_title',
             description='Report_description')
         runner.run(testunit)  # 自動(dòng)進(jìn)行測(cè)試
     
     注意眼五,運(yùn)行的時(shí)候妆艘,需要使用python run,不能以u(píng)nittest運(yùn)行看幼,否則不能生成測(cè)試報(bào)告批旺。 原因是 pycharm的Run unittest會(huì)直接運(yùn)行用例,不走下面的man函數(shù)诵姜。 
    

補(bǔ)充

  1. Python selenium 三種等待方式詳解

    1. 強(qiáng)制等待:簡(jiǎn)單粗暴汽煮, 這種叫強(qiáng)制等待,不管你瀏覽器是否加載完了棚唆,程序都得等待xx秒,xx秒一到暇赤,繼續(xù)執(zhí)行下面的代碼.
      作為調(diào)試很有用,有時(shí)候也可以在代碼里這樣等待宵凌,不過(guò)不建議總用這種等待方式鞋囊,太死板,嚴(yán)重影響程序執(zhí)行速度瞎惫。

      sleep(3) # 強(qiáng)制等待3秒再執(zhí)行下一步
      
    2. 隱形等待: 隱形等待是設(shè)置了一個(gè)最長(zhǎng)等待時(shí)間失暴,如果在規(guī)定時(shí)間內(nèi)網(wǎng)頁(yè)加載完成坯门,則執(zhí)行下一步,否則一直等到時(shí)間截止逗扒,然后執(zhí)行下一 步。 隱性等待對(duì)整個(gè)driver的周期都起作用欠橘,所以只要設(shè)置一次即可

      driver.implicitly_wait(30) # 隱性等待矩肩,最長(zhǎng)等30秒
      
    3. 顯性等待:WebDriverWait,配合該類(lèi)的until()和until_not()方法肃续,就能夠根據(jù)判斷條件而進(jìn)行靈活地等待了黍檩。它主要的意思就是:程 序每隔xx秒看一眼,如果條件成立了始锚,則執(zhí)行下一步刽酱,否則繼續(xù)等待,直到超過(guò)設(shè)置的最長(zhǎng)時(shí)間瞧捌,然后拋出TimeoutException棵里。

      WebDriverWait(driver, 20, 0.5).until(EC.presence_of_element_located(locator))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市姐呐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖固额,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狐蜕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鸠澈,警方通過(guò)查閱死者的電腦和手機(jī)柱告,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)笑陈,“玉大人际度,你說(shuō)我怎么就攤上這事⌒滦猓” “怎么了甲脏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)妹笆。 經(jīng)常有香客問(wèn)我块请,道長(zhǎng),這世上最難降的妖魔是什么拳缠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任墩新,我火速辦了婚禮,結(jié)果婚禮上窟坐,老公的妹妹穿的比我還像新娘海渊。我一直安慰自己绵疲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布臣疑。 她就那樣靜靜地躺著盔憨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪讯沈。 梳的紋絲不亂的頭發(fā)上郁岩,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音缺狠,去河邊找鬼问慎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挤茄,可吹牛的內(nèi)容都是我干的如叼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼穷劈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼笼恰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起囚衔,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挖腰,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后练湿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體猴仑,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年肥哎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辽俗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡篡诽,死狀恐怖崖飘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杈女,我是刑警寧澤朱浴,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站达椰,受9級(jí)特大地震影響翰蠢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜啰劲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一梁沧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝇裤,春花似錦廷支、人聲如沸频鉴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)垛孔。三九已至,卻和暖如春芝囤,著一層夾襖步出監(jiān)牢的瞬間似炎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工悯姊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贩毕。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓悯许,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親辉阶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子先壕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容