学习了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