register
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了register相关的知识,希望对你有一定的参考价值。
# coding=gbk
# 宝贝计划注册脚本
import time
import sql
import random
import makefiles as mf
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as ec # 导入预期条件(判断)模块
from selenium.webdriver.support.wait import WebDriverWait as w # 导入显式等待模块
import asc
import login
class Once():
passed = 0 # 注册通过数
fail = 0 # 注册失败数
err = 0 # 注册异常数
cp = 0 # 查询成功数
cf =0 #查询异常数
def register(self):
u‘‘‘测试注册功能‘‘‘
self.user = ""
self.passwd = ""
for i in range(random.randint(1, 20)): # 获取一组循环,循环的次数使用随机数,大小为1-20(生成一个1-20位的用户名)
self.user += chr(random.choice(asc.all())) # 调用asc模块(自写),返回ascii码范围,再使用random.choice方法选择使用范围里面的任意一个值,再把这个值转换成字符,最后再拼接起来成为一个字符串
for i in range(random.randint(6, 20)): # 获取密码,同上
self.passwd += chr(random.randint(32, 126))
wd = webdriver.Firefox() # 新建一个浏览器对象(火狐)
wd.get("http://192.168.15.158/BabyPlan/login.jsp") # 打开一个网站
try: # 注册成功
w(wd, 10).until(lambda x: x.find_element_by_link_text(u"注册").is_displayed()) # 使用显示等待的方法,判断注册按钮是否存在(displayed:存在),判断成立后再执行后面的内容,判断不成立,则等待限制时长后再跑出异常
wd.find_element_by_link_text(u"注册").click() # 找到对应元素(注册)后进行点击的操作
w(wd, 10).until(lambda x: x.find_element_by_id("regName").is_displayed()) # 显示等待方法,同上
wd.find_element_by_id("regName").send_keys(self.user) # 找到对象后再赋值
wd.find_element_by_id("regPwd").send_keys(self.passwd)
wd.find_element_by_id("pwdConfirm").send_keys(self.passwd)
wd.find_element_by_id("regbtn").click()
w(wd, 10).until(ec.alert_is_present()) # 弹出框方法的特殊判断方法,判断当前是否有弹出框
wd.switch_to_alert().accept() # 切换到弹出框后,进行确认
m = mf.makefile("log/register_pass.log")
m.w("账号:%s\n密码:%s\n" % (self.user, self.passwd))
self.passed+=1 # 注册成功,自加1
except: # 注册失败
self.fail+=1 # 注册失败,自加1
m = mf.makefile("log/register_fail.log")
m.w("账号:%s\t密码:%s\t,当前时间:%s" % (self.user, self.passwd,time.strftime(format("%Y_%m_%d_%H_%M_%S"))))
wd.get_screenshot_as_file("log/register_fail_"+time.strftime(format("%Y_%m_%d_%H_%M_%S"))+".png")
finally:
wd.quit() # 关闭当前页面
def check(self):
try:
if (self.passwd == sql.getPasswd(self.user)):
self.cp+=1 # 查询成功,自加1
m = mf.makefile("log/check_pass.log")
m.w("账号:%s\n密码:%s\n" % (self.user, self.passwd))
#print u"数据库写入数据与输入一致!"
else:
self.cf+=1 # 查询失败,自加1
m = mf.makefile("log/check_fail.log")
m.w("账号:%s\n密码:%s\n" % (self.user, self.passwd))
#print u"数据库写入数据与输入不一致"
except:
self.err+=1 # 查询异常,自加1
m = mf.makefile("log/check_err.log")
m.w("账号:%s\n密码:%s\n" % (self.user, self.passwd))
if __name__ == ‘__main__‘:
Test = Once()
for i in range(100):
print "当前执行次数:",i+1
Test.register()
Test.check()
print "执行总数:%d,成功数量:%d,失败数量:%d,查询成功数量:%d,查询失败数量:%d,查询异常数量:%d" % (Test.passed+Test.fail,Test.passed,Test.fail,Test.cp,Test.cf,Test.err)
以上是关于register的主要内容,如果未能解决你的问题,请参考以下文章