py+selenium一个可被调用的登录测试脚本【待优化】
大部分系统现在都有登录页面,本文主要尝试写一个登录的测试脚本,及另一个脚本调用它登录测试已登录的页面模块。
目标:
登录脚本:从excel里获取登录的测试数据(包括异常测试)→执行登录脚本→输出是否通过
A模块测试脚本:调用登录脚本,从excel里获取正确登录的测试数据→执行自动登录脚本→执行模块测试用例→输出是否通过
登录脚本auto.py:
# coding:utf-8
from selenium import webdriver
import time
import xlrd
from xlutils.copy import copy class login_test: def __init__(self, x, y, css):
self.x = x
self.y = y
self.css = css
# 函数功能:获取数据测试登录
def auto_login(self):
global driver, workbook
# 打开excel,初始化excel参数
workbook = xlrd.open_workbook(r'F:\test.xlsx') login = workbook.sheet_names()[1] sheet2 = workbook.sheet_by_name(login)
# 取excel数据
username = sheet2.cell(self.x, self.y).value
password = sheet2.cell(self.x, self.y + 1).value
ctype = sheet2.cell(self. x, self.y + 1).ctype if ctype == 2: # 若是数字则转化为整型,这一步可避免报错类型
password = int(password) # 初始化一个火狐浏览器实例:driver , 打开浏览器访问
driver = webdriver.Ie()
driver.maximize_window() # 最大化浏览器 driver.get("http://url") # 通过get()方法,打开一个url站点 time.sleep(2) # 输入登录账号密码,点击登录
driver.find_element_by_xpath("//input[@name='loginname']").send_keys(username)
driver.find_element_by_xpath("//input[@name='password']").send_keys(password)
driver.find_element_by_xpath(".//*[@id='btn']/input").click() time.sleep(2) # 调用判断元素是否存在来判断是否登录成功
self.element_exist() # 函数功能:保存并关闭浏览器 为什么这一步要单独分出来呢,因为测试其他模块的时候,被调用的时可以不用执行这几行代码。
def save_quit(self): wt = copy(workbook)
wt.get_sheet("login").write(self.x, self.y+2, k)
wt.save(r'F:\test.xlsx')
driver.quit() # 函数功能:判断页面是否存在元素 可调用该函数进行验证页面是否存在某个元素 def element_exist(self):
global k
s = driver.find_elements_by_css_selector(css_selector=self.css)
result = [u'通过', u'不通过']
if s:
k = result[0] print("通过")
else:
k = result[1] print("不通过")
return k
#这一步有待优化了,少了这一步,登录脚本被其他模块调用时会报driver未定义,多了这一步,又多开了个浏览器,所以我多加了一步,关闭浏览器,就当做测试下驱动
#如有优化建议,麻烦留言,谢谢!
driver = webdriver.Ie()
driver.quit() if __name__ == "__main__": for x in range(1, 3):
y = 0
test = login_test(x, y, css="#foot")
test.auto_login()
test.save_quit()
excel结果:

A模块脚本调用登录脚本automain.py:
# coding:utf-8
from selenium import webdriver
import time
# import xlrd
# from xlutils.copy import copy
import auto
from auto import driver auto.login_test(1, 0, css="#foot").auto_login() time.sleep(2) # 直接进行已登录页面的自动化测试操作
driver.find_element_by_xpath(".//*[@id='xxxx']/li[2]/a").click()
执行automain.py, 则从excel获取正确登录的数据,直接登录,无回写入excel(想写入也可以调),无关掉浏览器,直接等待下一步测试操作。
如有错误,请及时指正,谢谢
py+selenium一个可被调用的登录测试脚本【待优化】的更多相关文章
- jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)
JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...
- 一个简单的app自动登录Python脚本案例
- 写一个shell,自动执行jmeter测试脚本
贡献一个自己写的shell脚本,很简单,但又可以高效率的自动执行jmeter压测脚本. #!/bin/bash #author:zhangyl #version:V1 #该脚本放置于压测脚本的上一层目 ...
- Python之POST登录测试
不解释,直接上代码: #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @version: v1.0 @author ...
- Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,
测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...
- C#使用Selenium实现QQ空间数据抓取 登录QQ空间
经@吃西瓜的星星提醒 首先我们介绍下Selenium Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mo ...
- Python selenium自动化测试框架入门实战--登录测试案例
本文为Python自动化测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁.本文应用到POM模型.selenium.unittest框架.configparser配置文件.s ...
- 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来.今天宏哥就在这里把这种测试场景讲解和分享一下. 2.用法 创建一个执行 JS 的对象 ...
- SNF快速开发平台MVC-审核流,审核完成后会给下一个审核人发邮件,下一个审核人可以不登录系统,在邮件里进行审核处理
审核流设计和使用参考以下资料: 审核流设计 http://www.cnblogs.com/spring_wang/p/4874531.html 审核流实例 http://www.cnblogs.com ...
随机推荐
- 个人博客链接英语MP3提示盗链
今天想在wordpress博客中添加一个MP3进行播放,但是遇到了两个问题. 第一是页面无法正常加载播放器所需要的组件,获取资源返回404错误,查看之后发现时找不到wordpress中的一个svg文件 ...
- eclipse 插件编写(二)
上篇文章简单写了下怎么新建一个eclipse插件工程,这次写一下怎么在上次的工程中添加几个菜单,如菜单栏菜单.工具栏菜单.右键菜单等. 创建一个完成的菜单需要了解三个扩展点,即menus.comman ...
- JVM的几个介绍
关于jvm内存的几点 jvm在运行时分为方法区(Method Area) .虚拟机栈(VM Stack).本地方法栈(Native Method Stack).堆 (Heap).程序计数器 (Prog ...
- Delphi 编写IC控件
编写控件的基本步骤 1.确定一个祖先类 2.创建一个组件单元 3.在新控件中添加属性.方法和事件 事件定义方法如下: type private FOnClick:TNotifyEvent ;//( 声 ...
- Mac App Store应用签名和pkg签名,查看签名
App签名 只有用苹果颁发的证书签名的应用才能在App Store上进行销售,所以我们开发的应用必须打上签名. 签名有两种方式,一是使用Xcode,在配置里面设置签名,编译出来的app就有了签名:二是 ...
- Tomcat Java SSL
转自 - http://blog.csdn.net/szzt_lingpeng/article/details/51247980 转载自:http://my.oschina.net/cimu/blog ...
- Web页面制作之开发调试工具
直击现场 <HTML开发MacOSApp教程> http://pan.baidu.com/s/1jG1Q58M 开发工具介绍 开发工具一般分为两种类型:文本编辑器和集成开发环境(IDE) ...
- vim好用的功能 sublime text2类似的实现系列一
sublime的跳转 功能 快捷键 备注 往回跳 alt+- 和vim一样方便,可以在页面些跳转,定位到上次编辑的地方 往前跳 alt+shift+- 无 定义或取消标记 ctrl+<F2> ...
- 怎样让窗口不显示在任务栏和ALT+TAB中(隐藏窗口再嵌套,几乎是万能的办法)
之前想弄个像QQ旋风那样的悬浮窗口,就研究了下怎么让窗口不显示在任务栏中,方法其实很简单就是将窗口的扩张属性设置成WS_EX_TOOLWINDOW,MSDN中对该属性有详细介绍,代码如下: ::Set ...
- SYN4505型 标准同步时钟
SYN4505型 标准同步时钟 标准同步时钟电厂时间同步使用说明视频链接: http://www.syn029.com/h-pd-245-0_310_1_-1.html 请将此链接复制到浏览器打开观看 ...