selenium+python笔记7
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@desc: 测试126邮箱的登陆功能
1.使用公共方法public.login
2.将测试数据放在xml文件中,使用数据驱动(/test_data/login.xml)
3.这里使用xml.dom.minidom读取xml数据
"""
import unittest
import xml.dom.minidom
import os
import sys
from selenium import webdriver cur_dir = os.getcwd()
sys.path.append(cur_dir.split(r'\test_case')[0]) from public import login fpath = cur_dir.split('test_case')[0] + 'test_data' + os.path.sep + 'login.xml' # 打开 xml 文档
dom = xml.dom.minidom.parse(fpath) # 得到文档元素对象
root = dom.documentElement class TestLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
logins = root.getElementsByTagName('url')
self.base_url = logins[0].firstChild.data
self.verificationErrors = [] # 用例1:用户名、密码为空
def test_null(self):
driver = self.driver
driver.get(self.base_url)
# 读取xml中的数据
logins = root.getElementsByTagName('null')
# 获得 null 标签的 username、password 属性值
username = logins[0].getAttribute("username")
password = logins[0].getAttribute("password")
prompt_info = logins[0].firstChild.data
# 登录
login.login(self, username, password)
# 获取断言信息进行断言
text = driver.find_element_by_xpath("//div[@class='error-tt']/p").text
self.assertEqual(text, prompt_info) # 用例2:用户名为空
def test_user_null(self):
driver = self.driver
driver.get(self.base_url)
logins = root.getElementsByTagName('user_null')
# 获得 user_null 标签的 username、passwrod 属性值
username = logins[0].getAttribute("username")
password = logins[0].getAttribute("password")
prompt_info = logins[0].firstChild.data
# 登录
login.login(self, username, password)
# 获取断言信息进行断言
text = driver.find_element_by_xpath("//div[@class='error-tt']/p").text
self.assertEqual(text, prompt_info) # 用例3:密码为空
def test_pwd_null(self):
driver = self.driver
driver.get(self.base_url)
logins = root.getElementsByTagName('pwd_null')
# 获得 pwd_null 标签的 username、passwrod 属性值
username = logins[0].getAttribute("username")
password = logins[0].getAttribute("password")
prompt_info = logins[0].firstChild.data
# 登录
login.login(self, username, password)
# 获取断言信息进行断言
text = driver.find_element_by_xpath("//div[@class='error-tt']/p").text
self.assertEqual(text, prompt_info) # 用例4:错误的用户名和密码
def test_error(self):
driver = self.driver
driver.get(self.base_url)
logins = root.getElementsByTagName('error')
# 获得 error 标签的 username、passwrod 属性值
username = logins[0].getAttribute("username")
password = logins[0].getAttribute("password")
prompt_info = logins[0].firstChild.data
# 登录
login.login(self, username, password)
# 获取断言信息进行断言
text = driver.find_element_by_xpath("//div[@class='error-tt']/p").text
self.assertEqual(text, prompt_info) def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors) if __name__ == "__main__":
unittest.main()
selenium+python笔记7的更多相关文章
- selenium+python笔记11
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: search in mail box "&qu ...
- selenium+python笔记10
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 我们多添加一些测试场景,比如:删除邮件,查找邮件,发送邮件等等 &qu ...
- selenium+python笔记9
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: delete mail 我们多添加一些测试场景,比如:删 ...
- selenium+python笔记8
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 定制浏览器 """ imp ...
- selenium+python笔记6
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 将登陆动作封装成function "" ...
- selenium+python笔记5
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 登陆126邮箱 """ f ...
- selenium+python笔记4
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 使用unittest组织用例 ""& ...
- selenium+python笔记3
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc:学习unittest的用法 注意setUp/setUpCl ...
- selenium+python笔记2
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 操作浏览器 """ fro ...
随机推荐
- 解决Bootstrap 附加导航(Affix)的问题和使用时若干注意事项
1.要清楚Affix分别赋予的class, 开始:affix-top 达到top参数:affix 达到bottom参数:affix-bottom 2.一定要自定义这些class,否则 插件会默认给你在 ...
- 【leetcode❤python】235. Lowest Common Ancestor of a Binary Search Tree
#-*- coding: UTF-8 -*- # Definition for a binary tree node.# class TreeNode(object):# def __init ...
- javascript/jquery判断是否为undefined或是null!
var exp = undefined; if (typeof(exp) == "undefined"){ alert("undefined");} 注意 ...
- Android-表格布局 计算器 修改版
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android=" ...
- spring事务管理-摘抄
原著网址 http://gcq04552015.iteye.com/blog/1666570 Spring是以代理的方式实现对事务的管理.我们在Action中所使用的Service对象,其实是代理对象 ...
- left join 等连接查询遇到同名字段覆盖问题
可以在查询时给字段赋别名,但是需要注意以下:*的位置要在最前面,放在其他地方都会出错.这种写法同名覆盖的字段还在,然后在*的后面加上别名字段,已经可以满足所有需求了 SELECT *,r.id as ...
- 如何在iOS 7.0中隐藏状态栏
使用Cordova做了一个小项目,在原来iOS6的时候显示挺好,升级为iOS7后,每次App启动后都会显示状态栏,而且状态栏和App的标题栏重叠在一起,非常难看,因此需要将状态栏隐藏起来. 首先, ...
- Burpsuite之Http Basic认证爆破
有的时候经常遇到401.今天正好朋友问怎么爆破,也顺便记录一下 怕忘记了 referer:http://www.2cto.com/Article/201303/194449.html 看到Burpsu ...
- UML分析与设计
考点: 掌握面向对象的分析与设计 掌握UML描述方法 用例图.类图.序列图.状态转换图 类图:类的属性.方法的识别:类间的各种关系 类图:实体.联系 各种关系图例: 泛化:取公共属性 关联分为聚合.组 ...
- 字段符号FIELD-SYMBOLS
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...