Python+ Selenium自动化登录腾讯QQ邮箱实例
学习了Python语言一段时间后,在公司的项目里也使用到了python来写测试脚本,一些重复的操作都使用脚本来处理了。大大的提高工作效率,减少了一些手工重复的操作。
以下是使用unittest框架写的简单的邮箱自动登录实例,分享给大家,有不足之处可留言交流。
由于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注重语句的优美,对缩进和换行都很严格,稍有不对齐的缩进都会报错。所以要注意了。
路在脚下,希望在前方,努力明天会更好!