多线程爬取zxcs.me【代码记录】

多线程爬取zxcs.me,运行可中断,能继续

PS:使用的是Python3.7版本

zhixuan.py

import urllib.request
import os
# from bs4 import BeautifulSoup
from pyquery import PyQuery as pq
from concurrent.futures import ThreadPoolExecutor
import myEmail


def request(url):
    url_request = urllib.request.urlopen(url)
    html_doc = url_request.read().decode('utf-8', 'ignore')
    # soup = BeautifulSoup(html_doc, 'html.parser')
    soup = pq(html_doc)
    # print(soup.html())
    return soup


# print(soup.prettify())
soup = request('http://www.zxcs.me/')
# common_list = iter(soup.find_all("li", class_="common"))
common_list = soup('.common').items()
dirN = ""
srcL = ""
page = 0
sort = 0
srcU = ""
DLCount = 0
levelTop = []
#保存文件目录
pathComm = "D:\\QMDownload\\"


# 文件下载
def download(P_dir, file_name, url):
    file = P_dir + "\\" + file_name + ".rar"
    if not os.path.exists(P_dir):
        os.makedirs(P_dir)

    urllib.request.urlretrieve(url, file)

    global DLCount
    DLCount += 1
    print("开始下载至第" + str(DLCount) + "本")
    if(DLCount % 1000 == 0):
        myEmail.sendEmail("xxxxxxxxxx@qq.com", "已经下载到了第" + str(DLCount) + "本")
    path = pathComm + "zhixuan.txt"
    f = open(path, "a")
    print("下载链接:"+file_name+"|"+url+"\n")
    f.write("下载链接:"+file_name+"|"+url+"\n")
    f.close()
    # 记录下载量
    path = pathComm + "down.log"
    ff = open(path, "a")
    ff.write("开始下载至第" + str(DLCount) + "本\n")
    ff.close()


def ParsingThird(dirN, name, linkSrc):
    soup = request(linkSrc)
    href = soup(".filetit").children().attr("href")
    soup = request(href)
    d_href = soup(".downfile").eq(0).children().attr("href")
    # print("下载链接:"+name+"|"+d_href)
    download(pathComm + dirN, name, d_href)
    return


pool = ThreadPoolExecutor(max_workers=3)
intt = 0


def ParsingSecondThread2(pageInfo):
    # [pageMax, sort, srcU, dirN, page(now)]
    pageMax = pageInfo[0]
    sort = pageInfo[1]
    srcU = pageInfo[2]
    dirN = pageInfo[3]
    page = pageInfo[4]
    realUrl = srcU + sort + "/page/"
    global pool
    for i in range(page, int(pageMax)+1):
        print("开始下载SORT【" + str(sort) + "】的第【" + str(i) + "】页")
        soup = request(realUrl+str(i))
        plist = soup("#plist dt a").items()
        for st in plist:
            name = st.text()
            linkSrc = st.attr("href")
            # print("第一链接: " + linkSrc)
            pool.submit(ParsingThird, dirN, name, linkSrc)
        # pool.submit(ThreadDown, dirN, realUrl2)


def ParsingSecondThread1(pageInfo):
    # [pageMax, sort, srcU, dirN, page(now)]
    pageMax = pageInfo[0]
    sort = pageInfo[1]
    srcU = pageInfo[2]
    dirN = pageInfo[3]
    page = pageInfo[4]
    realUrl = srcU + sort + "/page/"
    for i in range(page, int(pageMax)+1):
        print("开始下载SORT【" + str(sort) + "】的第【" + str(i) + "】页")
        ko = open(pathComm + "keep.log", "w+")
        ko.write(str(sort) + "|" + str(i))
        ko.close()
        soup = request(realUrl+str(i))
        plist = soup("#plist dt a").items()
        with ThreadPoolExecutor(max_workers=3) as t:
            for st in plist:
                name = st.text()
                linkSrc = st.attr("href")
                # print("第一链接: " + linkSrc)
                t.submit(ParsingThird, dirN, name, linkSrc)


def ParsingSecond(pageInfo):
    # [pageMax, sort, srcU, dirN, page(now)]
    pageMax = pageInfo[0]
    sort = pageInfo[1]
    srcU = pageInfo[2]
    dirN = pageInfo[3]
    page = pageInfo[4]
    realUrl = srcU + sort + "/page/"
    for i in range(page, int(pageMax)+1):
        realUrl2 = realUrl+str(i)
        print("开始下载SORT【" + str(sort) + "】的第【" + str(i) + "】页")
        ko = open(pathComm + "keep.log", "w+")
        ko.write(str(sort) + "|" + str(i))
        ko.close()
        soup = request(realUrl2)
        # print(realUrl2)
        plist = soup("#plist dt a").items()
        for st in plist:
            name = st.text()
            linkSrc = st.attr("href")
            ParsingThird(dirN, name, linkSrc)


def getPages(dirN, srcL):
    print(dirN, ":", srcL)
    soup = request(srcL)
    lastFullUrl = soup('#pagenavi a:last').attr("href")
    pageMax = lastFullUrl[lastFullUrl.rfind("/")+1:]
    global sort
    sort = srcL[srcL.rfind("/")+1:]
    srcU = srcL[0:srcL.rfind("/")+1]
    return [pageMax, sort, srcU]


def first():
    for element in common_list:
        cds = element
        if(len(cds.children()) == 1):
            dirN = cds.text().replace("·", "")
            srcL = cds('a').attr("href")
            pageInfo = getPages(dirN, srcL)
            pageInfo.append(dirN)
            pageInfo.append(1)
            levelTop.append(pageInfo)
        else:
            lis = cds('ul li').items()
            for li in lis:
                dirN = li('a').text().replace("·", "")
                srcL = li('a').attr("href")
                pageInfo = getPages(dirN, srcL)
                pageInfo.append(dirN)
                pageInfo.append(1)
                levelTop.append(pageInfo)
    reFirst(levelTop)


def reFirst(levelTop):
    kPath = pathComm + "keep.log"
    # 不存在keep.log
    if not os.path.exists(kPath):
        print("不存在keep.log")
    else:
        kf = open(kPath, "r+")
        line = kf.readline()
        sort = line[0:line.find("|")]
        page = int(line[line.find("|")+1:])
        print(sort)
        print(page)
        kf.close()
        # [pageMax, sort, srcU, dirN]
        for pageInfo in levelTop:
            if(sort != pageInfo[1]):
                del levelTop[0]
            else:
                pageInfo[4] = page
                break
    # [pageMax, sort, srcU, dirN, page(now)]
    print(levelTop)
    for pageInfo in levelTop:
        ParsingSecondThread1(pageInfo)


first()

myEmail.py

# smtplib 用于邮箱发信动作
import smtplib
from email.mime.text import MIMEText
# email 用于构建邮件内容
from email.header import Header
# from email.mime.multipart import MIMEMultipart


def sendEmail(to_addr, msg):
    # 发信方的信息:发信邮件,邮箱授权码
    from_addr = 'xxxxxxxxx@163.com'
    # 测试直接使用登录密码可行,qq邮箱可能需要授权码,没有测试过
    password = 'xxxxxxxx'

    # 收信方邮箱
    # to_addr = "xxxxxxx@qq.com"

    # 发信服务器
    smtp_server = "smtp.163.com"
    # 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
    msg = MIMEText(msg, 'plain', 'utf-8')

    # 邮件头信息
    msg['From'] = Header(from_addr)
    msg['To'] = Header(to_addr)
    msg['Subject'] = Header("爬虫通知", "utf-8")
    try:
        # 开启发信服务,这里使用的是加密传输
        server = smtplib.SMTP(smtp_server)
        server.connect(smtp_server, 25)
        # 登录发信邮箱
        server.login(from_addr, password)
        # 发送邮件
        server.sendmail(from_addr, to_addr, msg.as_string())
        # 关闭服务器
        server.quit()
        print("邮件发送成功")
    except smtplib.SMTPException:
        print("Error: 邮件发送失败")
    finally:
    	# 必须要有return,不然方法调用后 会卡着 直至被抛出异常
        return
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QQ注册页面详细的测试用例 用例编号 需求(用例标题) 模块 步骤 预期结果 测试结果 功能点优先级 V_0001 显示输入状态 注册页面 "1、进入QQ邮箱账号申请页面 2、鼠标点击邮箱账号输入框" 光标闪动,输入框亮色 1 V_0002 页面失效 注册页面 "1、进入QQ邮箱账号申请页面 2、长时间离开页面" 提示:由于您长时间离开导致页面失效,请重新注册 1 V_0003 输入不合理邮箱账号 注册页面 "1.进入QQ邮箱账号申请页面 2.输入错误的邮箱名,如111111111 3.鼠标焦点离开邮箱账号框" 提示:邮箱格式错误 1 V_0004 输入字母自动弹出合理的邮箱账号下拉框选项 注册页面 "1.进入QQ邮箱账号申请页面 2.输入字母 如 aa 自动弹出合理下拉框选项 3.选择其中一种" 提示:创建成功 1 V_0005 输入数字自动弹出合理的邮箱账号下拉框选项 注册页面 "1.进入QQ邮箱账号申请页面 2.输入数字 如 11 自动弹出合理下拉框选项 3.选择其中一种" 提示:创建成功 1 V_0006 邮箱账号分类选项 注册页面 "1.进入QQ邮箱账号申请页面 2.鼠标焦点进入邮箱账号框" "提示:1.请输入你常用的电子邮箱 2.选择""创建邮箱""或""注册普通QQ号""" 1 V_0007 查看邮箱账号旁边分类选项的“注册普通QQ号”选项是否有用 注册页面 "1.进入QQ邮箱账号申请页面 2.点击邮箱账号旁边的“注册普通QQ号” 3.是否正确转换到“QQ账号注册”页面" 成功转换页面 1 V_0008 查看邮箱账号旁边分类选项的“创建邮箱”选项是否有用 注册页面 "1.进入QQ邮箱账号申请页面 2.点击邮箱账号旁边的“创建邮箱” 3.邮箱账号是否分为2部分组成;前半部为输入项;后半部为选择项 " 成功显示区分状态 1 V_0009 查看邮箱账号右侧选择的下拉框选项是否可用 注册页面 "1.进入QQ邮箱账号申请页面 2.点击邮箱账号旁边的“创建邮箱” 3.邮箱账号是否分为2部分组成;左半部为输入项;右半部为选择项 4.点击右半部的选项下拉框,查看是否可用" 可以正确选择其中一种 1 V_0010 邮箱账号不能为空 右侧邮箱账号结尾默认值为@qq.com 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧不输入任何符号 3.右侧随意选择一种选项 如 @qq.com 4.鼠标焦点离开邮箱账号输入框" 提示:请输入邮箱 1 V_0011 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧输入 空格键 3.右侧随意选择一种选项 如@qq.com 4.鼠标焦点离开账号输入框" 提示:请输入邮箱 1 V_0012 不以字母开头的邮箱账号 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧输入以空格、数字、点、减号、下划线组成的邮箱账号 3.右侧随意选择一种选项 如 @qq.com 4.鼠标焦点离开邮箱账号框" 提示:必须以a-z的字母(不区分大小写)为开头 V_0013 "输入小于3位的字符邮箱账号 (不区分大小写)" 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧输入小于3位的字符 如 aa 3.右侧随意选择一种选项 如 @qq.com 4.鼠标焦点离开账号输入框" 提示:长度该为3-18个字符 1 V_0014 "输入大于18位的字符邮箱账号 (不区分大小写)" 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧输入大于18位的字符 如 aaaaa11111#####a2%] 3.右侧随意选择一种选项 如 @qq.com 4.鼠标焦点离开账号输入框" 提示:长度该为3-18个字符 1 V_0015 输入3-18位字符包含不合理使用的特殊符号(点、减号、下划线) 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧输入包含不合理使用特殊符号的账号 如 aaa3122s2...wa 3.右侧随意选择一种选项 如@qq.com 4.鼠标焦点离开账号输入框" 提示:点、减号、下划线不能连续出现2次或2次以上 1 V_0016 输入3-18位字符包含合理使用的特殊符号(点、减号、下划线) 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧输入包含合理使用特殊符号的账号 如 aaa-312_2s2.wa 3.右侧随意选择一种选项 如@qq.com 4.鼠标焦点离开账号输入框" 提示:创建成功 1 V_0017 检测账号是否已被注册 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧输入3-18个合理字符 如 aaaaa222222 3.右侧随意选择一种选项 如@qq.com 4.鼠标焦点离开账号输入框" 提示:账号以被注册 1 V_0018 注册页面 "1.进入QQ邮箱账号申请页面 2.左侧输入3-18个合理字符 如 akuhkj523312 3.右侧随意选择一种选项 如@qq.com 4.鼠标焦点离开账号输入框" 提示:创建成功 1 V_0019 输入以点、减号、下划线为结尾 注册页面 "1、进入邮箱账号申请页面 2、左侧输入以点、减号、下划线为结尾 如 asdas123_ 3、右侧随意选择一种选项 如@QQ.com 4.鼠标焦点离开账号输入框" 提示:请以字母或数字结尾 1 V_0020 输入以字母或数字结尾 注册页面 "1、进入邮箱账号申请页面 2、左侧输入以字母或数字结尾 如asdasw_11 3、右侧随意选择一种选项 如@qq.com 4.鼠标焦点离开账号输入框" 提交成功 1 V_0021 显示输入状态 注册页面 "1、进入QQ邮箱账号申请页面 2、鼠标点击昵称输入框" 光标闪动,输入框亮色 1 V_0022 昵称不能为空 注册页面 "1.进入QQ邮箱账号申请页面 2.点击进入昵称输入框 3.不输入任何符号 4.鼠标焦点离开昵称输入框" "提示:1.请输入昵称 2.昵称输入框变红" 1 V_0023 注册页面 "1.进入QQ邮箱账号申请页面 2.点击进入昵称输入框 3.输入空格符号 4.鼠标焦点离开昵称输入框" "提示:1.昵称不能为空格 2.昵称输入框变红" 1 V_0024 输入大于24位字符 注册页面 "1.进入QQ邮箱账号申请页面 2.点击进入昵称输入框 3.输入大于24位的字符 如 aaaaaaaa11111111$$$$$$$$y 4.鼠标焦点离开昵称输入框" 提示:不能超过24个字符或12个汉字 1 V_0025 输入大于12个汉字 注册页面 "1.进入QQ邮箱账号申请页面 2.点击进入昵称输入框 3.输入大于12个的汉字 如啊啊啊啊啦啊啊啊啊啦啊啊啊 4.鼠标焦点离开昵称输入框" 提示:不能超过24个字符或12个汉字 1 V_0026 输入大于12位字符和6个汉字 注册页面 "1.进入QQ邮箱账号申请页面 2.点击进入昵称输入框 3.输入大于12位字符和6个汉字 如asdc1234^&*&啊啊啦暗暗额h 4.鼠标焦点离开昵称输入框" 提示:不能超过24个字符或12个汉字 1 V_0027 输入不超过24个字符或12个汉字 注册页面 "1.进入QQ邮箱账号申请页面 2.点击进入昵称输入框 3.输入12342 4.鼠标焦点离开昵称输入框" 提示:创建成功 1 V_0028 密码提示功能 注册页面 "1.进入QQ邮箱账号申请页面 2.鼠标点击密码输入框" 提示:请输入密码 1 V_0029 密码不能为空 注册页面 "1.进入QQ邮箱账号申请页面 2.不输入任何符号 3.鼠标焦点离开密码输入框" "提示:1请输入密码 2密码框变红" 1 V_0030 注册页面 "1.进入QQ邮箱账号申请页面 2.输入空格符号 3.鼠标焦点离开密码输入框" "提示:1密码不能为空格 2密码框变红" 1 V_0031 设置密码软键盘 注册页面 "1.进入QQ邮箱账号申请页面 2.鼠标焦点进入密码输入框 3.旁边出现软键盘图标 4.进入软键盘,看能否使用" 弹出软件盘能正常使用 1 V_0032 填写不合理密码长度小于6位字符 注册页面 "1.进入QQ邮箱账号申请页面 2.输入小于6位的字符,如55555 3.鼠标焦点离开密码输入框" "提示:1密码长度应为6-16位字符 2密码框变红" 1 V_0033 填写不合理密码长度大于16位字符 注册页面 "1.进入QQ邮箱账号申请页面 2.输入大于16位的字符,如55555666667777788 3.鼠标焦点离开密码输入框" "提示:1密码长度不能过长 2密码框变红" 1 V_0034 "密码不能为9位以下的纯数字 " 注册页面 "1.进入QQ邮箱账号申请页面 2.输入小于9位的纯数字,如88888888 3.鼠标焦点离开密码输入框" "提示:1密码不能为9位以下的纯数字 2密码框变红" 1 V_0035 "填写合理的密码最小长度 区分大小写" 注册页面 "1.进入QQ邮箱账号申请页面 2.输入6位的字符,如z55555 3.鼠标焦点离开密码输入框" 提示:密码成功 1 V_0036 "填写合理的密码最大长度 区分大小写" 注册页面 "1.进入QQ邮箱账号申请页面 2.输入16位的字符,如5555566666777778 3.鼠标焦点离开密码输入框" 提示:密码成功 1 V_0037 "填写合理的密码纯数字 " 注册页面 "1.进入QQ邮箱账号申请页面 2.输入9位的纯数字,如888888888 3.鼠标焦点离开密码输入框" 提示:密码成功 1 V_0038 "填写合理的密码组合数字加字母 区分大小写" 注册页面 "1.进入QQ邮箱账号申请页面 2.输入数字加组合,如8888zasd 3.鼠标焦点离开密码输入框" 提示:密码成功 1 V_0039 提示密码强度 弱 注册页面 "1.进入QQ邮箱账号申请页面 2.输入纯数字,如8888888888 3.鼠标焦点离开密码输入框" 提示:密码强度 弱 1 V_0040 提示密码强度 中 注册页面 "1.进入Q邮箱Q账号申请页面 2.输入字母加数字,如zxcs7654 3.鼠标焦点离开密码输入框" 提示:密码强度 中 1 V_0041 提示密码强度 强 注册页面 "1.进入QQ邮箱账号申请页面 2.输入数字+字母+符号,如888zsd#¥% 3.鼠标焦点离开密码输入框" 提示:密码强度 强 1 V_0042 确认密码不能为空 注册页面 "1.进入QQ邮箱账号申请页面 2.不输入任何符号 3.鼠标焦点离开密码输入框" 提示:请再次输入密码 1 V_0043 确认密码要一致 注册页面 "1.进入QQ邮箱账号申请页面 2.输入不一致的密码 3.鼠标焦点离开密码输入框" 提示:密码不一致 1 V_0044 注册页面 "1.进入QQ邮箱账号申请页面 2.输入一致的密码 3.鼠标焦点离开密码输入框" 提示:密码成功 1 V_0045 设置确认密码软键盘 注册页面 "1.进入QQ邮箱账号申请页面 2.鼠标焦点进入确认密码输入框 3.旁边出现软键盘图标 4.进入软键盘,看能否使用" 弹出软键盘能正常使用 1 V_0046 选择性别 (默认设置为 男) 注册页面 "1.进入QQ邮箱账号申请页面 2.选择性别 默认设置为 男 3.鼠标焦点离开性别选择输入框" 提示:选择成功 1 V_0047 注册页面 "1.进入QQ邮箱账号申请页面 2.选择性别 如 女 3.鼠标焦点离开性别选择输入框" 提示:选择成功 1 V_0048 不选择生日日期:年 月 日 注册页面 "1.进入QQ邮箱账号申请页面 2.不选择任何选项 3.鼠标焦点离开生日输入框" 提示:请选择生日 1 V_0049 只选择生日日期:年 注册页面 "1.进入QQ邮箱账号申请页面 2.只选择年份,如1991年 3.鼠标焦点离开生日输入框" 提示:请选择生日 1 V_0050 只选择生日日期:年 月 注册页面 "1.进入QQ邮箱账号申请页面 2.只选择年份+月份,如1991年1月 3.鼠标焦点离开生日输入框" 提示:请选择生日 1 V_0051 "选择生日日期:年 月 日 默认设置为 公历" 注册页面 "1.进入QQ邮箱账号申请页面 2.选择年份+月份+日期,默认设置为公历,如 公历 1991年1月11日 3.鼠标焦点离开生日输入框" 提示:属马 魔蝎座 1 V_0052 查看年份下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.进入选择年份 3.查看年份下拉框选项内容是否正确 " 年份选项正确 1 V_0053 输入错误年份 注册页面 "1.进入QQ邮箱账号申请页面 2.进入选择年份 输出错误年份 3.自动默认年份第1个选项为默认值 " 默认年份第1个选项 1 V_0054 查看月份下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.选择出年份 进入选择月份 3.查看月份下拉框选项内容是否正确 " 月份选项正确 1 V_0055 输入错误月份 注册页面 "1.进入QQ邮箱账号申请页面 2.选择出年份 进入选择月份 输出错误月份 3.自动默认月份第1个选项为默认值 " 默认月份第1个选项 1 V_0056 查看日期下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.选择出年份和月份 进入选择日期 3.查看日期下拉框选项内容是否正确 " 日期选项正确 1 V_0057 输入错误日期 注册页面 "1.进入QQ邮箱账号申请页面 2.选择出年份和月份 进入选择日期 输出错误日期 3.自动默认日期第1个选项为默认值 " 默认日期第1个选项 1 V_0058 生日是否有农历选项 注册页面 "1.进入QQ邮箱账号申请页面 2.在公历下拉框选项内容 3.选择出农历 选项值" 能选择出农历选项 1 V_0059 查看农历年份下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.进入农历选项 选择年份 3.查看年份下拉框选项内容是否正确 " 年份选项正确 1 V_0060 查看农历月份下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.进入农历选项 选择出年份 再选择月份 3.查看月份下拉框选项内容是否正确 " 月份选项正确 1 V_0061 查看农历日期下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.进入农历选项 选择出年份和月份 选择日期 3.查看日期下拉框选项内容是否正确 " 日期选项正确 1 V_0062 选择所在地 注册页面 "1.进入QQ邮箱账号申请页面 2.选择你的所在地 默认设置为 中国广东省广州市 3.鼠标焦点离开所在地输入框" 提示:选择成功 1 V_0063 查看国家所在地下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.进入选择国家 3.查看国家下拉框选项内容是否正确 " 国家选项正确 1 V_0064 输入错误国家 注册页面 "1.进入QQ邮箱账号申请页面 2.进入选择国家 输出错误国家 3.自动默认国家第1个选项为默认值 " 默认国家第1个选项 1 V_0065 查看省份下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.选择出国家 进入选择省份 3.查看省份下拉框选项内容是否正确 " 省份选项正确 1 V_0066 输入错误省份 注册页面 "1.进入QQ邮箱账号申请页面 2.选择出国家 进入选择省份 输出错误省份 3.自动默认省份第1个选项为默认值 " 默认省份第1个选项 1 V_0067 查看城市下拉框选项内容是否正确 注册页面 "1.进入QQ邮箱账号申请页面 2.选择出国家和省份 进入选择城市 3.查看城市下拉框选项内容是否正确 " 城市选项正确 1 V_0068 输入错误城市 注册页面 "1.进入QQ邮箱账号申请页面 2.选择出国家和省份 进入选择城市 输出错误城市 3.自动默认城市第1个选项为默认值 " 默认城市第1个选项 1 V_0069 填写不合理的验证码 注册页面 "1.进入QQ邮箱账号申请页面 2.不输入任何符号 3.鼠标焦点离开验证码输入框" 提示:请输入验证码 1 V_0070 注册页面 "1.进入QQ邮箱账号申请页面 2.输入不一致的验证码 3.鼠标焦点离开验证码输入框" "提示:输入错误 请重新输入" 1 V_0071 填写合理的验证码 不区分大小写 注册页面 "1.进入QQ邮箱账号申请页面 2.输入正确的验证码 3.鼠标焦点离开验证码输入框" 提示:选择成功 1 V_0072 验证码的图片可否换一张 注册页面 "1.进入QQ邮箱账号申请页面 2.点击验证码图片的旁边“换一张”看能否更换" 更换成功 1 V_0073 选择“我已阅读并同意相关服务条款” 注册页面 "1.进入QQ邮箱账号申请页面 2.不选择“我已阅读并同意相关服务条款” 3.鼠标焦点离开输入框" "提示:1.请选择“我已阅读并同意相关服务条款” 2.立即注册选项变黑" 1 V_0074 注册页面 "1.进入QQ邮箱账号申请页面 2.选择“我已阅读并同意相关服务条款” 3.鼠标焦点离开输入框" 提示:选择成功 1 V_0075 能否点击查看《QQ号码规则》 注册页面 "1.进入QQ邮箱账号申请页面 2.点击“我已阅读并同意相关服务条款”旁边的选项下拉框进入《QQ号码规则》 3.是否可以进入《QQ号码规则》" 可以进入 1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值