学习了 Python 语言一段时间后, 在公司的项目里也使用到了 python 来写测试脚本, 一些重复的操作都使用脚本来处理了大大的提高工作效率, 减少了一些手工重复的操作
以下是使用 unittest 框架写的简单的邮箱自动登录实例, 分享给大家, 有不足之处可留言交流
由于 QQ 邮箱登录的页面使用 iFrame 的设计, 在开始写的时候因为找不到切换的方法, 导致代码老是报错
driver.switch_to.frame("login_frame")
在打开 QQ 邮箱首页后, 需要先切换到 login_frame 的框里才可以进入输入帐号密码登录操作
- #!/usr/bin/env python
- #_*_coding:utf-8_*_
- #Author:Vincent Lan
- import unittest,time
- from selenium import webdriver
- from selenium.webdriver.common.keys import Keys
- class QQ_mail(unittest.TestCase):
- def setUp(self):
- self.driver = webdriver.Firefox()
- self.driver.implicitly_wait(30)
- self.base_url = "https://mail.qq.com"
- self.verificationErrors = []
- self.accept_next_alert = True
- print("正在访问 QQ 邮箱")
- def test_mail_login(self):
- """QQ 邮箱登录"""
- driver = self.driver
- driver.maximize_window()
- driver.get(self.base_url + "/")
- driver.switch_to.frame("login_frame")
- driver.find_element_by_id("switcher_plogin").click()
- driver.find_element_by_id("u").clear()
- driver.find_element_by_id("u").send_keys("yourmailadd")
- driver.find_element_by_id("p").clear()
- driver.find_element_by_id("p").send_keys("your password")
- driver.find_element_by_id("p").send_keys(Keys.ENTER)
- #driver.find_element_by_id("login_button").click()
- print("登录 QQ 邮箱成功")
- def tearDown(self):
- self.driver.quit()
- self.assertEqual([], self.verificationErrors)
- if __name__ =="__main__":
- unittest.main()
如果登录后不需要自动关闭网页就要把 def tearDown(self) 注释掉这样就可以查看邮件或编写邮件了
- def tearDown(self):
- self.driver.quit()
- self.assertEqual([], self.verificationErrors)
针对初学者的建议: python 注重语句的优美, 对缩进和换行都很严格, 稍有不对齐的缩进都会报错所以要注意了
来源: https://www.cnblogs.com/Hoperoad/p/8607579.html