运行脚本后报错“positional argument but 2 were given”但我找不到那条语句有问题,求解答

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

追风筝的人qym

2018-09-07

from selenium import webdriver
from ShowapiRequest import ShowapiRequest
from PIL import Image
from time import sleep
from find_element import Find_element
import random

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 = Find_element(self.driver)
    user_element = find_element.code_value(key)
    return user_element

def code_num(self):
    email_user = ''.join(random.sample('17389', 5))
    return email_user

def photo_num(self,filename):
    self.driver.save_screenshot(filename)
    element_value = self.get_user_element("code_image")
    left = element_value.location['x']
    top = element_value.location['y']
    right = element_value.size['width'] + left
    height = element_value.size['height'] + top
    im = Image.open(filename)
    new_image = im.crop((left, top, right, height))
    new_image.save(filename)

def code_infor(self,filename):
    self.code_num(filename)
    r = ShowapiRequest("http://route.showapi.com/184-4", "73290", "91d9d5556af84a7b8FOfe02047b92c7c")
    r.addBodyPara("typeId", "35")
    r.addBodyPara("convert_to_jpg", "0")
    r.addFilePara("image", filename)
    res = r.post()
    print(res.text)
    text = res.json()['showapi_res_body']['Result']
    return text

def main(self):
    user_name_number = self.code_num()
    user_email = user_name_number + "@163.com"
    filename = r'E:/Image.png'
    code_text = self.code_infor(filename)
    self.send_user_info('user_email',user_email)
    self.send_user_info('user_name', user_name_number)
    self.send_user_info('user_password',"123466")
    self.send_user_info('code_text', code_text)
    self.get_user_element('register_button').click()
    sleep(4)
    self.driver.close()

if name == ‘main’:
reg_fun = RegisterFunction(‘http://www.5itest.cn/register?goto=/’)
reg_fun.main()

写回答

2回答

Mushishi

2018-09-08

random.sample('17389', 5) 这个方法告诉你 需要传递一个list进去,然后从list里面获取5个数据作为返回数据

0
1
追风筝的人qym
好的,谢谢老师,我看一看
2018-09-08
共1条回复

追风筝的人qym

提问者

2018-09-07

E:\python\python.exe D:/Python_py/SELENIUM_MUK/imooc_selenium/register_funcation01.py

Traceback (most recent call last):

  File "D:/Python_py/SELENIUM_MUK/imooc_selenium/register_funcation01.py", line 68, in <module>

    reg_fun.main()

  File "D:/Python_py/SELENIUM_MUK/imooc_selenium/register_funcation01.py", line 57, in main

    code_text = self.code_infor(filename)

  File "D:/Python_py/SELENIUM_MUK/imooc_selenium/register_funcation01.py", line 43, in code_infor

    self.code_num('filename')

TypeError: code_num() takes 1 positional argument but 2 were given


0
0

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

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

1883 学习 · 1093 问题

查看课程