把登录和退出功能单独写到一个公共.py脚本,其它用例test1,test2调用公共登录,退出函数
公共登录/退出函数模块(login_exit.py):
#coding:utf-8
import time
def login(driver, username, password):#此处的driver是个形参,如果不在此处定义就不可以使用
driver.find_element_by_link_text("登录").click()
#输入用户名
driver.find_element_by_css_selector("#input1").send_keys(username)
time.sleep(2)
#输入密码
driver.find_element_by_css_selector("#input2").send_keys(password)
# 点击登录
time.sleep(2)
driver.find_element_by_id("signin").click()
def exit(driver):
time.sleep(2)
driver.find_element_by_link_text("退出").click()
time.sleep(2)
t = driver.switch_to.alert
time.sleep(2)
#print(t.text)
t.accept()
time.sleep(2)
用例模块(test.py):
#coding:utf-8
from selenium import webdriver
import unittest,time
from l_and_q import login_exit
class Test_Log(unittest.TestCase): '''测试类,是多个测试用例的集合,可以把一些相同的操作写成一个类,test_suit'''
def setUp(self):
url="https://www.cnblogs.com/"
self.option = webdriver.ChromeOptions()
self.option.add_argument('lang=zh_CN.UTF-8')
self.option.add_argument('User-Agent:"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36"')
self.driver = webdriver.Chrome(chrome_options=self.option)
self.driver.get(url)
def test_1log(self): #登录失败
#调用login函数,并向它传参
login_exit.login(driver=self.driver, username=u"uname", password=u"flasepwd")
time.sleep(2)
#实际结果
actual_result=self.driver.find_element_by_css_selector("#tip_btn").text
print("实际结果为:"+actual_result)
time.sleep(2)
#预期结果
expected_result = u"用户名或密码错误\n\n联系 contact@cnblogs.com"
print("预期结果为:" + expected_result)
time.sleep(2)
self.assertEqual(actual_result,expected_result,msg="实际结果(%s)与预期结果(%s)不一致"%(actual_result,expected_result)) def test_2log(self): #登录成功
#调用login函数,并向它传参
login_exit.login(driver=self.driver, username=u"uname", password=u"truepwd") time.sleep(2)
#实际结果
actual_result=self.driver.find_element_by_css_selector("#span_userinfo>a:nth-child(1)").text
print("\n实际结果为:"+actual_result)
#预期结果
expected_result="女林"
print("预期结果为:"+expected_result)
self.assertEqual(actual_result,expected_result,msg="实际结果(%s)与预期结果(%s)不一致"%(actual_result,expected_result))
time.sleep(2)
#调用login_exit模块中的exit函数
login_exit.exit(driver=self.driver)
time.sleep(2)
# def test_3log(self): #退出账号成功
# login_exit.login(driver=self.driver, username=u"uname", password=u"truepwd")
# login_exit.exit(driver=self.driver)
# time.sleep(2)
# #实际结果
# actual_result=self.driver.find_element_by_css_selector("#span_userinfo>a:nth-child(1)").text
# print("\n实际结果为:"+actual_result)
# self.assertTrue(actual_result)
# # #预期结果
# # expected_result="登"
# # print("预期结果为:"+expected_result)
# # self.assertIn(expected_result,actual_result,msg="实际结果(%s)与预期结果(%s)不一致"%(expected_result,actual_result))
# time.sleep(2)
def tearDown(self):
self.driver.quit() if __name__=="__main__":
unittest.main()

把登录和退出功能单独写到一个公共.py脚本,其它用例test1,test2调用公共登录,退出函数的更多相关文章
- 基于七牛Python SDK写的一个批量下载脚本
前言 上一篇基于七牛Python SDK写的一个同步脚本所写的脚本只支持上传,不支持文件下载. 虽然这个需求不太强烈,但有可能有人(在备份.迁移时)需要,而官方有没提供对应的工具,所以我就把这个功能也 ...
- 自己写的一个tomcat发布脚本
闲来无事,就自己写一个shell脚本,方便自己以后在服务器上部署tomcat下的项目.我本地用maven打包,然后每次都要人工去切换一堆堆目录,有点繁琐,所以我写了下面的shell脚本. #! /bi ...
- 写了一个RenderInBackground的脚本
某主管希望write节点有多线程渲染的功能,而nuke中的render in background功能恰恰可以多个渲染任务同时执行,于是我考虑使用这个方法来实现. 调 试过程中发现renderinba ...
- python3 写的一个压测脚本(有待开发)
import requests import queue import threading import time status_code_list = [] exec_time = 0 class ...
- python+imageMagick写的一个压缩图片脚本
!/usr/bin/python import os import cPickle as p import re import Image def imageCompre(imagedir = '.' ...
- go语言实战教程之管理员查询功能、退出功能
前面第10节课内容中已经学习开发完成了管理员登陆功能.本节课我们将继续学习开发完成管理员信息查询功能.管理员退出功能 管理员信息查询功能 请求及路由映射 管理员信息查询接口 接口名称:获取管理员信息. ...
- 写了一个hiero中添加自定义Token的脚本
Hiero自带Token往往不够用,shotname中自带版本号的情况下要升级版本会很麻烦,比如Shot_0001_v001这样一个序列名,要升级为Shot_0001_v002就必须把_v001之前的 ...
- SpringBoot开发十-开发登录,退出功能
需求介绍-开发登录,退出功能 访问登录页面:点击头部区域的链接打开登录页面 登录: 验证账号,密码,验证码 成功时生成登录凭证发放给客户端,失败时跳转回登录页面 退出: 将登录状态修改为失效的状态 跳 ...
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能
使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...
随机推荐
- 08-hibernate注解-多对多双向外键关联
多对多双向外键 双方持有对方的集合对象 其中一方设置: //教师类 @ManyToMany(mappedBy="teachers") //mappedby表示教师交给学生来控制 ...
- LaTeX 在编译时出现 File ended while scanning use of \@writefile错误
LaTeX -在修改论文过程中,重新编译时.出现了File ended while scanning use of \@writefile错误,如以下所示: 问题出现的原因: 因为aux文件没有完整输 ...
- java.lang.NullPointerException org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
java.lang.NullPointerException org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) org.apache.jsp.i ...
- Inno Setup 打包的文件以管理员权限执行
最近发现一个问题,就是Inno Setup打包的程序安装完毕后执行需求管理员权限的程序的时候会失败( inno createprocess 须要提升),解决问题的最简单办法就是打包的后的程序也以管 ...
- Python Kivy 安装问题解决
Fix: Running this was suggested by @matham in #3889 and solves the problem described below:python -m ...
- Linux学习一
1.Linux的优缺点: 长处: 稳定的系统 免费或少许费用 安全性,漏洞的高速修补 多任务,多用户 用户与用户的规划 相对不耗资源的系统 适合须要小内核的嵌入式系统 整合度佳且多样的图形用户界面 缺 ...
- Zynq GPIO 中断
/* * Copyright (c) 2009-2012 Xilinx, Inc. All rights reserved. * * Xilinx, Inc. * XILINX IS PROVIDIN ...
- SMARTY 变量
变量 模板变量以美元符号$开头,由字母.数组和下划线组成,和 PHP variable相似. 变量可以引用数字索引或非数字索引的数组,对象的属性和方法等. 配置变量 是例外的,它不是以美元符号$开头, ...
- 微信中调起qq
http://wpa.qq.com/msgrd?uin={$qq}&menu=yes
- ORACLE的显式游标与隐式游标
1)查询返回单行记录时→隐式游标: 2)查询返回多行记录并逐行进行处理时→显式游标 显式游标例子: DECLARE CURSOR CUR_EMP IS SELECT * FROM EMP; ROW_E ...