通过参数化的方式,登录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就可以正常运行了

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

参数化登录QQ空间实例的更多相关文章

  1. 使用Python+Selenium模拟登录QQ空间

    使用Python+Selenium模拟登录QQ空间爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleniu ...

  2. ClientKey实现登录QQ空间,并设置背景音乐

    ClientKey大家都知道的,通过webbrowser登录后取得Cookie并计算出GTK,即可操作空间的POST. 源代码中引用了苏飞的Http类库,自己修改添加了一些拓展方法. 下载地址:htt ...

  3. C# 13行代码带你模拟登录QQ空间

    最近想做一个QQ空间点赞的小工具,于是晚上下班回来就开始分析PC版的QQ空间,打开Chrome,切换到Network,然后输入账号密码,然后点击登录... 然后,我曹....一堆请求就开始了....搞 ...

  4. C#使用Selenium实现QQ空间数据抓取 登录QQ空间

    经@吃西瓜的星星提醒 首先我们介绍下Selenium Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mo ...

  5. QQ空间动态爬虫

    作者:虚静 链接:https://zhuanlan.zhihu.com/p/24656161 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 先说明几件事: 题目的意 ...

  6. Python爬虫实战:使用Selenium抓取QQ空间好友说说

    前面我们接触到的,都是使用requests+BeautifulSoup组合对静态网页进行请求和数据解析,若是JS生成的内容,也介绍了通过寻找API借口来获取数据. 但是有的时候,网页数据由JS生成,A ...

  7. curl之采集QQ空间留言

    目录 主要流程解析 注意事项 扩展 完整代码示例 采集效果一览 主要流程解析 首先,打开浏览器登录QQ空间并访问留言列表 由于QQ空间的链接是https,curl方式请求https链接需要突破http ...

  8. QQ空间说说爬虫

    QQ空间说说爬虫 闲来无事,写了一个QQ空间的爬虫,主要是爬取以前的说说,然后生成词云. 这次采用的主要模块是selenium,这是一个模拟浏览器的模块,一开始我不想用这个模块写的,但是后面分析的时候 ...

  9. selenium firefox 提取qq空间相册链接

    环境: selenium-java 3.9.1 firefox 57.0 geckodriver 0.19.1 1.大概的思路就是模拟用户点击行为,关于滚动条的问题,我是模拟下拉箭头,否则只能每个相册 ...

随机推荐

  1. MacOS VMware Function安装win的ghost系统(亲测成功!!!)

    1.下载WEPE工具生成可启动ISO 下载WEPE工具 WEPE工具下载地址 下载完成之后,双击打开文件(无需安装,可直接制作可启动ISO) 点击立即生成ISO之后 2.将生成的可启动ISO文件和wi ...

  2. xml构建

    <a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=346252320&site=qq ...

  3. Android ActionBar使用方法

    对于这ActionBar我想很多人都想了解一下到底是怎么一个使用方法,以及它都存在哪些可操作的和使用的地方.如下图所示:<ignore_js_op> 这便是ActionBar的基本内容.获 ...

  4. 【Newtonsoft.Json.dll】操作列表JSON数据

    JObject data = JObject.Parse(json); JArray array = JArray.Parse(data["list"] + "" ...

  5. django 返回json

    django返回json有以下三个版本 from django.http import HttpResponse import json from django.views import View f ...

  6. html中的table导出Excel

    演示地址: http://www.jq22.com/yanshi3312 具体代码: <!DOCTYPE html> <html lang="zh-CN"> ...

  7. ASP 缓存处理及URL 重写

    1 缓存 1.1.1 <%--通过设置VaryByParam =" VaryByParam ="none" %> 1.1.2 <%--带参数缓存,只要包 ...

  8. 解决:The APR based Apache Tomcat Native library which allows optimal performance in production...

    tomcat日志apr报错引发的基于Tomcat Native加速Tomcat性能 tomact服务启动报错日志如下:息: The APR based Apache Tomcat Native lib ...

  9. 【Selenium专题】FAQ_浏览器_ChromeDriver版本导致报错

    报错信息 Started ChromeDriver port=31984 version=23.0.1240.0 log=C:\workspace\test\chromedriver.log [063 ...

  10. Android源码:(一) 安卓2.1到4.4操作系统通用的Actionbar实现的tab导航例子。

    说一下我在完成这个例子之前的尝试吧 一,修改“actionbarsherlock”的导航例子.我在实现这个例子之前,尝试过“actionbarsherlock”,修改它的一个tab导航的例子,修改成功 ...