运行后报错name 'user_email' is not defined,查不到原因了一直说未定义

来源:2-22 如何将整个注册流程脚本进行模块化实战讲解

weixin_慕瓜4505928

2021-02-22

图片描述找了半天一直没找到在哪里出错了,配置文件,调用配置文件都检查了没问题,运行这个就报错未定义user_email,求大神帮忙看一下原因

# -*-coding:utf -8 -*-
import sys
sys.path.append('E:\\慕课网学习\\selenium3+python')
from selenium import webdriver
import time
import random
from PIL import Image
# from ShowapiRequest import ShowapiRequest
import requests
import base64
from find_element import FindElement


class RegisterFunction(object):
    def __init__(self, url):
        self.driver = self.get_driver(url)
        # 获取driver并且打开url

    def get_driver(self, url):
        # 打开浏览器
        driver = webdriver.Chrome()
        driver.get(url)
        # 窗口最大化
        driver.maximize_window()
        return driver

    # 输入用户信息
    def send_user_info(self, key, data):
        self.get_user_element(key).send_keys(data)

    # 定位用户信息,获取element
    def get_user_element(self, key):
        find_element = FindElement(self.driver)
        user_element = find_element.get_element(key)
        return user_element

    # 获取随机数
    def get_range_user(self):
        user_info = ''.join(random.sample('1234567890abcdefghijklmn', 8))
        return user_info

    # 获取图片
    def get_code_image(self, file_name):
        self.driver.save_screenshot(file_name)
        code_element = self.get_user_element("code_image")
        left = code_element.location['x']
        top = code_element.location['y']
        right = code_element.size['width'] + left
        height = code_element.size['height'] + top
        im = Image.open(file_name)
        img = im.crop((left, top, right, height))
        img.save(file_name)

    # 解析图片获取验证码
    # def code_online(file_name):
    # r = ShowapiRequest("https://route.showapi.com/1274-2","543824","ff33ff058df14033a6a4da89dd585d0f" )
    # r.addBodyPara("typeId", "35")
    # r.addBodyPara("convert_to_jpg", "0")
    # r.addBodyPara("base64", "")
    # r.addFilePara("image", file_name) #文件上传时设置
    # res = r.post()
    # print(res.text)
    # text = res.json()['showapi_res_body']['Result']
    # return text

    # 解析验证码
    def code_online(self, file_name):
        self.get_code_image(file_name)
        # 调用百度文字识别获取access_token接口
        host = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=8VL3QQR7Irl4Dw92frQi57Un&client_secret=M4poAbjnFEbmacr2YwWngrKdGZDNnYrQ"
        response = requests.get(host)
        if response:
            access_token = response.json()['access_token']
            # print(access_token)
        # 调用百度图文字识别接口
        request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
        # 二进制方式打开图片文件
        f = open(file_name, 'rb')
        img = base64.b64encode(f.read())
        params = {"image": img}
        request_url = request_url + "?access_token=" + access_token
        headers = {'content-type': 'application/x-www-form-urlencoded'}
        response_img = requests.post(request_url, data=params, headers=headers)
        if response_img:
            text = response_img.json()["words_result"][0]["words"]  # 获取验证码的值
        return text

    def main(self):
        user_name_info = self.get_range_user()
        user_email_info = user_name_info + "@163.com"
        file_name = "E:/慕课网学习/img/test01.png"
        code_text = self.code_online(file_name)
        self.send_user_info('user_email', user_email)
        self.send_user_info('user_name', user_name)
        self.send_user_info('password', 111111)
        self.send_user_info('code_text', 111111)
        self.get_user_element('register_button').click()
        time.sleep(5)
        self.driver.close()


if __name__=='__main__':
    register_function = RegisterFunction('http://www.5itest.cn/register')
    register_function.main()

写回答

1回答

Mushishi

2021-02-22

user_name_info = self.get_range_user()
       user_email_info = user_name_info + "@163.com"
       file_name = "E:/慕课网学习/img/test01.png"
       code_text = self.code_online(file_name)
       self.send_user_info('user_email', user_email)

你也是很粗心。上面user email。info。下面user email 能一样么

0
0

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1883 学习 · 1093 问题

查看课程