get_value() takes 1 positional argument but 2 were given
来源:2-22 如何将整个注册流程脚本进行模块化实战讲解

慕前端7508807
2019-09-03
#register_function.py
#coding=utf-8
import sys
sys.path.append(‘F:/工作资料/测试/慕课网项目/xiangm’)
from selenium import webdriver
import time
import random
from PIL import Image
from imooc_selenium.find_element import FindElement
from imooc_selenium.ShowapiRequest import ShowapiRequest
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_key(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('1234567890abcdefghijklmnopqrstuvwxyz', 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") # 定位元素
# print(code_element.location) # {“x”:123,"y":345}
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(self,file_name):
self.get_code_image(file_name)
r = ShowapiRequest("http://route.showapi.com/184-4", "103988", "cbc109aa467546d4a1af830ffbaf6087")
r.addBodyPara("typeId", "35")
r.addBodyPara("convert_to_jpg", "0")
r.addFilePara("image", file_name) # 文件上传时设置
res = r.post()
text = res.json()['showapi_res_body']['Result']
return text
def main(self):
user_name_info = self.get_range_user()
user_email = user_name_info + "@163.com"
file_name = "F:/工作资料/测试/慕课网项目/xiangm/picture/test02.png"
code_text = self.code_online(file_name)
self.send_user_info('user_email',user_email)
self.send_user_info('user_name', user_name_info)
self.send_user_info('password', "111111")
self.send_user_info('code_text', code_text)
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回答
-
慕前端7508807
提问者
2019-09-04
调用main()之前调试没有问题,调用之后报错
012019-10-01
相似问题