以下是使用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注重语句的优美,对缩进和换行都很严格,稍有不对齐的缩进都会报错。所以要注意了。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。