Selenium2+python自动化10-登录案例【转载】
前言
前面几篇都是讲一些基础的定位方法,没具体的案例,小伙伴看起来比较枯燥,有不少小伙伴给小编提建议以后多出一些具体的案例。本篇就是拿部落论坛作为测试项目,写一个简单的登录测试脚本。
在写登录脚本的时候呢,先要保证流程能跑起来,然后才是去想办法优化代码,让自己的脚本看起来更舒服,具有良好的可读性。
一、登录
1.先打开浏览器
2.打开论坛主页:"http://www.hordehome.com/"
3.查找元素之前可以先设置元素等待:implicitlywait()
4.点登录按钮,弹出登录框
5.输入用户名、密码,然后点登录
# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.hordehome.com")
# 设置隐试等待10秒
driver.implicitly_wait(10)
# 点登录按钮,输入账号密码后登录
driver.find_element_by_id("ember886").click()
driver.find_element_by_id("login-account-name").send_keys("YOYO")
driver.find_element_by_id("login-account-password").send_keys("xxxooo")
driver.find_element_by_css_selector(".btn.btn-large.btn-primary").click()
二、检查结果
1.登录完成之后,需要检查是否登录成功,这里就需要有个检查点,我这边选择的是查看登录后头像的属性
2.先定位到登录头像,通过get_attribute()方法获取到这个对象的title属性
3.判断获取到的值,与期望结果是否一致
4.符合预期结果测试通过
5.不符合预期结果测试不通过
# 获取登录头像的title属性值
t = driver.find_element_by_id("current-user").get_attribute("title")
# 判断返回结果
if t == u"个人页面、消息、书签和设置":
print("登录成功")
else:
print("登录失败")
(注意:这里网站已经更新过了,学下思路就行,不要copy)
三、退出登录
1.测试完之后,别忘了最后退出登录
2.退出登录后,关闭浏览器
# 退出登录
driver.find_element_by_id("current-user").click()
driver.find_element_by_id("ember1097").click()
driver.quit()
四、登录函数
1.虽然上面的代码能实现登录,但整个代码跟记流水账一样,没什么可读性。如果我想换个账号登录,这时候还得找到登录的账号和密码位置,比较费时。
2.我们可以把登录和退出写出两个函数,这样看起来更舒服一点。
3.把登录的账号和密码参数化
# coding:utf-8
from selenium import webdriver
def login(user,password):
driver.get("http://www.hordehome.com")
driver.implicitly_wait(10)
driver.find_element_by_id("ember886").click()
driver.find_element_by_id("login-account-name").send_keys(user)
driver.find_element_by_id("login-account-password").send_keys(password)
driver.find_element_by_css_selector(".btn.btn-large.btn-primary").click()
return driver
def logout():
driver.find_element_by_id("current-user").click()
driver.find_element_by_id("ember1097").click()
driver.quit()
五、运行用例
1.先调用登录函数
2.检查登录结果
3.退出登录,并关闭浏览器
if __name__ == "__main__":
driver = webdriver.Firefox()
driver = login("YOYO", "xxxooo")
t = driver.find_element_by_id("current-user").get_attribute("title")
if t == "个人页面、消息、书签和设置":
print("登录成功")
else:
print("登录失败")
logout()
Selenium2+python自动化10-登录案例【转载】的更多相关文章
- Selenium2+python自动化28-table定位【转载】
前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table ...
- Selenium2+python自动化7-xpath定位【转载】
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...
- Selenium2+python自动化10-登录案例
前言 前面几篇都是讲一些基础的定位方法,没具体的案例,小伙伴看起来比较枯燥,有不少小伙伴给小编提建议以后多出一些具体的案例.本篇就是拿部落论坛作为测试项目,写一个简单的登录测试脚本. 在写登录脚本的时 ...
- Selenium2+python自动化51-unittest简介【转载】
前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的.python里面也有单元测试框架-unittest,相当于是一个python版的junit. ...
- Selenium2+python自动化74-jquery定位【转载】
转至博客:上海-悠悠 前言 元素定位可以说是学自动化的小伙伴遇到的一道门槛,学会了定位也就打通了任督二脉,前面分享过selenium的18般武艺,再加上五种js的定位大法. 这些还不够的话,今天再分享 ...
- selenium+python自动化之登录案例
一.登录 1.先打开浏览器 2.打开论坛主页:http://www.hordehome.com/ 3.查找元素之前可以先设置元素等待:implicitly_wait() 4.点登录按钮,弹出登录框 5 ...
- Selenium2+python自动化69-PhantomJS使用【转载】
前言 PhantomJS是一个没有界面的浏览器,本质上是它其实也就是一个浏览器,只是不在界面上展示. PhantomJS非常适合爬虫方面,很多玩爬虫的都喜欢用这个浏览器. 一.PhantomJS环境准 ...
- Selenium2+python自动化4-Pycharm使用【转载】
前言 在写脚本之前,先要找个顺手的写脚本工具.python是一门解释性编程语言,所以一般把写python的工具叫解释器.写python脚本的工具很多,小编这里就不一一列举的,只要自己用着顺手就可以的, ...
- Selenium2+Python自动化-处理浏览器弹窗(转载)
本篇转自博客:上海-小T 原文地址:http://blog.csdn.net/real_tino/article/details/59068827 我们在浏览网页时经常会碰到各种花样的弹窗,在做UI自 ...
随机推荐
- 7,MongoDB 之 Limit 选取 Skip 跳过 Sort 排序
我们已经学过MongoDB的 find() 查询功能了,在关系型数据库中的选取(limit),排序(sort) MongoDB中同样有,而且使用起来更是简单 首先我们看下添加几条Document进来 ...
- laravel5.5事件广播系统
目录 1. 定义广播事件 1.1 广播名称 1.2 广播数据 1.3 广播队列 1.4 广播条件 2. 频道授权 2.1 定义授权路由 2.2 定义授权回调 3. 对事件进行广播 3.1 可以使用ev ...
- 剑指Offer - 九度1350 - 二叉树的深度
剑指Offer - 九度1350 - 二叉树的深度2013-11-23 00:54 题目描述: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的 ...
- XSS注入常用语句积累
<script>alert('hello,gaga!');</script> //经典语句,哈哈! >"'><img src="javas ...
- python 读取数据库中文内容显示一堆问号
需要在连接数据库时 设置编码格式 def select_db(self,db_name): self.conn = MySQLdb.connect( host = self.ip, port = se ...
- Canvas 图片绕边旋转的小动画
/** * 图片绕边旋转的小动画 */ function initDemo10() { var canvas = document.getElementById("demo10") ...
- RPG游戏黑暗之光
1.设置默认鼠标光标 PlayerSettings → Default Cursor 下设置 2.为人物创建单一类 为人物创建了PlayerAnimation.cs.PlayerDir.cs.Play ...
- hdu 1574 RP问题 01背包的变形
hdu 1574 RP问题 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1574 分析:01背包的变形. RP可能为负,所以这里分两种情况处理一下就好 ...
- C#学习笔记----静态字段和静态方法
1.使用关键字 static 修饰的字段或方法成为静态字段和静态方法,如 public static int num = 1;2.静态字段属于类,并为类所用.而非静态字段属于对象,只能被特定的对象专有 ...
- 201621123033 《Java程序设计》第8周学习总结
第八次作业 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 首先调 ...