學習了Python語言一段時間後,在公司的項目裏也使用到了python來寫測試腳本,一些重複的操做都使用腳原本處理了。大大的提升工做效率,減小了一些手工重複的操做。python
如下是使用unittest框架寫的簡單的郵箱自動登陸實例,分享給你們,有不足之處可留言交流。web
因爲QQ郵箱登陸的頁面使用iFrame的設計,在開始寫的時候由於找不到切換的方法,致使代碼總是報錯。框架
driver.switch_to.frame("login_frame")
在打開QQ郵箱首頁後,須要先切換到login_frame的框裏才能夠進入輸入賬號密碼登陸操做。學習
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #Author:Vincent Lan 4 import unittest,time 5 from selenium import webdriver 6 from selenium.webdriver.common.keys import Keys 7 8 9 class QQ_mail(unittest.TestCase): 10 def setUp(self): 11 self.driver = webdriver.Firefox() 12 self.driver.implicitly_wait(30) 13 self.base_url = "https://mail.qq.com" 14 self.verificationErrors = [] 15 self.accept_next_alert = True 16 print("正在訪問QQ郵箱") 17 18 19 def test_mail_login(self): 20 """QQ郵箱登陸""" 21 driver = self.driver 22 driver.maximize_window() 23 driver.get(self.base_url + "/") 24 25 driver.switch_to.frame("login_frame") 26 driver.find_element_by_id("switcher_plogin").click() 27 28 29 driver.find_element_by_id("u").clear() 30 driver.find_element_by_id("u").send_keys("yourmailadd") 31 32 driver.find_element_by_id("p").clear() 33 driver.find_element_by_id("p").send_keys("your password") 34 35 driver.find_element_by_id("p").send_keys(Keys.ENTER) 36 #driver.find_element_by_id("login_button").click() 37 print("登陸QQ郵箱成功") 38 39 """ 40 def tearDown(self): 41 self.driver.quit() 42 self.assertEqual([], self.verificationErrors) 43 """ 44 if __name__ == "__main__": 45 unittest.main()
若是登陸後不須要自動關閉網頁就要把def tearDown(self)註釋掉。這樣就能夠查看郵件或編寫郵件了。測試
1 """ 2 def tearDown(self): 3 self.driver.quit() 4 self.assertEqual([], self.verificationErrors) 5 """
針對初學者的建議:python注重語句的優美,對縮進和換行都很嚴格,稍有不對齊的縮進都會報錯。因此要注意了。ui