当前位置: 首页 > 知识库问答 >
问题:

Python方法缺少一个参数,但所有参数似乎都存在[重复]

空夕
2023-03-14

我想做的是运行一段代码,但当我加载项目时,captcha解决函数会说我在函数中缺少一个参数,但我不知道在哪里。

代码:

这段代码:

            elif action_to_take == "RECAPTCHA_V2":
                selenium_field = self.execute_recaptcha_v2_solver(captcha_key, url_or_field_identifier)
                self.write_to_debug_file("--> SOLVING RECAPTCHA V2 ...", _filename)

然后执行:

    # this function executes the ReCaptcha solver ...
    def execute_recaptcha_v2_solver(self, api_key, url_or_field_identifier):
        solve_recaptcha_v2 = CaptchaReCaptchaSolver.solve_recaptcha(api_key,
                                                                    self.extract_data_site_key(self.driver.page_source),
                                                                    url_or_field_identifier)
        javascript_code = 'document.getElementById("g-recaptcha-response").innerHTML = "{}"'.format(solve_recaptcha_v2)
        return self.driver.execute_script(javascript_code)

运行该类的:

class CaptchaReCaptchaSolver(object):

    # noinspection PyMethodMayBeStatic
    def solve_recaptcha(self, _captcha_api_key, _site_key, _url):
        print(_captcha_api_key, _site_key, _url)
        """ this function solves recaptcha using 2captcha.com """
        try:

            # p = '127.0.0.1:6969'
            # p = {'http': 'http://' + p, 'https': 'https://' + p}

            # send off requests ...
            s = requests.Session()
            cap_id = s.post('http://2captcha.com/in.php?key={}&method=userrecaptcha&googlekey={}&pageurl={}'.format(
                _captcha_api_key, _site_key, _url)).text.split('|')[1]
            rec_an = s.get("http://2captcha.com/res.php?key={}&action=get&id={}".format(_captcha_api_key, cap_id)).text

            # tell us what is going on ...
            print("--> ReCAPTCHA V2 SOLVING")
            print("--> SOLVING ...")
            while "CAPTCHA_NOT_READY" in rec_an:
                sleep(5)
                rec_an = s.get("http://2captcha.com/res.php?key={}&action=get&id={}".format(_captcha_api_key, cap_id)).text

            rec_an = rec_an.split('|')[1]

            # solved ...
            print("--> " + rec_an)
            print("--> SOLVED ...")
            print("--> ReCAPTCHA V2 RESPONSE")

            # payload ...
            payload = {'key': 'value', 'gresponse': rec_an}
            s.post(_url, payload)

            # return ReCaptcha answer ...
            return rec_an

        except Exception as e:
            print("2CAPTCHA.COM [ReCAPTCHA] ERROR: ", e)

错误是:

LINE 222 "selenium_field = self.execute_recaptcha_v2_solver(captcha_key, url_or_field_identifier)"): solve_recaptcha() missing 1 required positional argument: '_url'

类方法solve\u recaptcha()缺少它所说的一个参数,但是我已经打印出来了,它们都在那里,我是否缺少一些明显的参数?我看不出会有什么问题,如果有任何帮助,我将不胜感激。

共有1个答案

郎意
2023-03-14

请注意这里...CaptchaReCaptchaSolver.solve_recaptcha这就是如何调用静态类成员而不是实例。因为方法的第一个参数是Self,所以它需要在对象的实例上调用函数。

CaptchaReCaptchaSolver().solve_recaptch(...

现在您的最终代码是

# this function executes the ReCaptcha solver ...
def execute_recaptcha_v2_solver(self, api_key, url_or_field_identifier):
    solve_recaptcha_v2 = CaptchaReCaptchaSolver().solve_recaptcha(api_key,
                                                                self.extract_data_site_key(self.driver.page_source),
                                                                url_or_field_identifier)
    javascript_code = 'document.getElementById("g-recaptcha-response").innerHTML = "{}"'.format(solve_recaptcha_v2)
    return self.driver.execute_script(javascript_code)
 类似资料:
  • 在Spring Boot时发出请求并得到一个丢失的参数异常,尽管该值没有丢失。解决数独的项目 请求url为:http://localhost:8080/solvesudoku/getcellanswer/0/0 下面是错误消息: “错误”:“错误请求”, “异常”:“org.springframework.web.bind.MissingServletRequestParameterExcepti

  • 我是Python的新手,我正在尝试学习如何使用类。有人知道这怎么不起作用吗?任何关于关键字“self”的额外提示都将不胜感激。 代码: 错误:

  • 问题内容: 我正在开发一个游戏作为附带项目,很有趣,但是遇到了这个错误,我真的不知道为什么会发生… 这是代码: 我这样称呼它: 我得到的错误是: 有任何想法吗? 问题答案: 您不应直接调用类方法,而应创建该类的实例: 要详细说明该错误,您将得到: TypeError:turn()缺少1个必需的位置参数:“ playerImages” 这是因为需要第一个参数()的实例。类方法总是将实例作为第一个参数

  • 想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 我有一个A类像: 现在还有另一类X,例如: 现在,ClassY和ClassB是一样的,就像: 我想将A的实例复制到Y的新对象中。 我遇到过做类似映射的推土机,但那是如果值是原始的。我不知道如何映射它们中的类。尝试用java实现这一点。 我偶然发现了答案https://stackoverflow.com/a/36196948/2733350

  • 我正在尝试做一个测试,它验证(使用Mockito v1.9.5的)在执行传递

  • 问题内容: 我是python新手,碰壁了。我遵循了一些教程,但无法克服错误: 我检查了一些教程,但似乎与我的代码没有什么不同。我唯一能想到的是python 3.3需要不同的语法。 主要技巧: 泵类: 如果我正确理解,“自我”将自动传递给构造函数和方法。我在这里做错了什么? 我正在将Windows 8与python 3.3.2一起使用 问题答案: 你需要在此处实例化一个类实例。 采用 小例子