请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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 09:39:45

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

0 回复 有任何疑惑可以回复我~
  • 提问者 追风筝的人qym #1
    好的,谢谢老师,我看一看
    回复 有任何疑惑可以回复我~ 2018-09-08 10:14:10
提问者 追风筝的人qym 2018-09-07 23:22:16

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 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号