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注重语句的优美,对缩进和换行都很严格,稍有不对齐的缩进都会报错。所以要注意了。

 

posted @ 2018-03-20 10:09  希望之路  阅读(4751)  评论(0编辑  收藏  举报