MCPcopy Create free account
hub / github.com/Vinyzu/recognizer / load_captcha

Method load_captcha

recognizer/agents/playwright/sync_control.py:161–193  ·  view source on GitHub ↗
(
        self,
        captcha_frame: Optional[Union[PlaywrightFrameLocator, PatchrightFrameLocator]] = None,
        reset: Optional[bool] = False,
    )

Source from the content-addressed store, hash-verified

159 return True
160
161 def load_captcha(
162 self,
163 captcha_frame: Optional[Union[PlaywrightFrameLocator, PatchrightFrameLocator]] = None,
164 reset: Optional[bool] = False,
165 ) -> Union[str, bool]:
166 # Retrying
167 self.retried += 1
168 if self.retried >= self.retry_times:
169 raise RecursionError(f"Exceeded maximum retry times of {self.retry_times}")
170
171 TypedTimeoutError = PatchrightTimeoutError if isinstance(self.page, PatchrightPage) else PlaywrightTimeoutError
172 if not self.check_captcha_visible():
173 if captcha_token := self.check_result():
174 return captcha_token
175 elif not self.click_checkbox():
176 raise TypedTimeoutError("Invisible reCaptcha Timed Out.")
177
178 assert self.check_captcha_visible(), TypedTimeoutError("[ERROR] reCaptcha Challenge is not visible.")
179
180 # Clicking Reload Button
181 if reset:
182 assert isinstance(captcha_frame, (PlaywrightFrameLocator, PatchrightFrameLocator))
183 try:
184 reload_button = captcha_frame.locator("#recaptcha-reload-button")
185 reload_button.click()
186 except (PlaywrightTimeoutError, PatchrightTimeoutError):
187 return self.load_captcha()
188
189 # Resetting Values
190 self.dynamic = False
191 self.captcha_token = ""
192
193 return True
194
195 def handle_recaptcha(self) -> Union[str, bool]:
196 if isinstance(loaded_captcha := self.load_captcha(), str):

Callers 1

handle_recaptchaMethod · 0.95

Calls 3

check_captcha_visibleMethod · 0.95
check_resultMethod · 0.95
click_checkboxMethod · 0.95

Tested by

no test coverage detected