通过参数化的方式,登录QQ空间

实例源码:

# coding:utf-8
from selenium import webdriver
import unittest
import time
class QZone(unittest.TestCase):
"""登录QQ空间"""
def setUp(self):
self.driver = webdriver.Firefox()
base_url = "https://i.qq.com"
self.driver.get(base_url)
self.driver.implicitly_wait(30) def login_qzone(self,user,password):
"""登录方法,账号密码参数化"""
# self.driver.get(self.url + "/".format(self))
self.driver.switch_to_frame('login_frame')
self.driver.find_element_by_id('switcher_plogin').click()
self.driver.find_element_by_id('u').clear()
self.driver.find_element_by_id('u').send_keys(user)
self.driver.find_element_by_id('p').clear()
self.driver.find_element_by_id("p").send_keys(password)
self.driver.find_element_by_id("login_button").click()
time.sleep(3) def is_login_sucess(self):
"""判断是否登录成功"""
try:
result_text = self.driver.find_element_by_xpath(".//*[@id='headContainer']/div[2]/div[1]/span[1]").text
print result_text
return True
except:
return False def test_01(self):
"""登录case01"""
self.login_qzone("1222222", "*********") #运行时输入对应的账号
result = self.is_login_sucess()
self.assertTrue(result) def test_02(self):
"""登录case02"""
self.login_qzone("00000000", "*********") # 运行时输入对应的账号
result = self.is_login_sucess()
self.assertTrue(result) def tearDown(self):
self.driver.quit() if __name__ == "__main__":
unittest.main()

  源码分析:

1、采用单元测试框架unittest

2、setup()、steardown()函数是unittest框架中的起始和结束函数

3、login_qzone()函数是登录函数,用于登录QQ空间,登录时,账号密码采用了参数化的方式

4、is_login_success()函数是用于判断用户是否登录成功,若登录成功,返回登录的QQ空间的用户名,并打印出来

5、test01()、test02(),是测试用例,在测试用例中,调用登录函数进行登录操作,用登录验证函数来判断登录是否成功

遇到的坑:

报错截图

开始一直报这个错,不晓得什么原因,研究了很久;最后发现,是test01()、test02()函数下面注释的原因,去掉注释前面的u就可以正常运行了

虽然问题解决了,但是不晓得什么原因,请知道原因的大神,帮忙解释一下哦

最新文章

  1. ABAP 读取销售订单抬头文本自建函数
  2. poj3740
  3. Lucene.net站内搜索—2、Lucene.Net简介和分词
  4. STL中vector小结
  5. H5 input type="search" 不显示搜索 解决方法
  6. android开发 java与c# 兼容AES加密
  7. 玩下Javascript
  8. ural2062 Ambitious Experiment
  9. 仿复制粘贴功能,长按弹出tips的实现
  10. 如何禁用 .net reflector
  11. Spring Security入门(1-9)Spring Security 的xml 命名空间配置
  12. Python基础-python数据类型之字符串(四)
  13. 17秋 软件工程 团队第五次作业 Alpha Scrum3
  14. Html写作规范
  15. 供应商API补充(详解EBS接口开发之供应商导入)(转)
  16. 【转】每天一个linux命令(49):at命令
  17. 解决Web Uploader上传文件和图片 延迟和not defined
  18. 多线程之synchronized
  19. mac 终端 使用 gnu coreutils 工具 ls 颜色显示
  20. 【C#】使用Json.NET(newtonsoft)解析Json

热门文章

  1. gkd
  2. RzToolbutton用法
  3. XE5应用开发支持的安卓设备
  4. Linq限定操作之All,Any,Contains源码分析
  5. Android-SDCard外部存储文件读写
  6. ASP.NET Core2利用Jwt技术在服务端实现对客户端的身份认证
  7. 使用InstallUtil安装或卸载服务
  8. “全栈2019”Java第五十六章:多态与字段详解
  9. “全栈2019”Java第九章:解释第一个程序
  10. 二叉搜索树 思想 JAVA实现