diff --git a/DrissionPage/driver_page.py b/DrissionPage/driver_page.py index f5832a6..cb64f10 100644 --- a/DrissionPage/driver_page.py +++ b/DrissionPage/driver_page.py @@ -101,20 +101,17 @@ class DriverPage(object): :return: 是否成功 """ err = None - - def go() -> bool: - nonlocal err - try: - self.driver.get(to_url) - return True - except Exception as e: - err = e - return False - is_ok = False for _ in range(times + 1): - is_ok = self.check_page() if go() else False + try: + self.driver.get(to_url) + go_ok = True + except Exception as e: + err = e + go_ok = False + + is_ok = self.check_page() if go_ok else False if is_ok is not False: break diff --git a/DrissionPage/session_page.py b/DrissionPage/session_page.py index bee8db4..920c237 100644 --- a/DrissionPage/session_page.py +++ b/DrissionPage/session_page.py @@ -200,16 +200,13 @@ class SessionPage(object): err = None r = None - def go() -> Union[Response, None]: - nonlocal err + for _ in range(times + 1): try: - return self._make_response(to_url, mode=mode, show_errmsg=True, **kwargs)[0] + r = self._make_response(to_url, mode=mode, show_errmsg=True, **kwargs)[0] except Exception as e: err = e - return None + r = None - for _ in range(times + 1): - r = go() if r and (r.content != b'' or r.status_code in (403, 404)): break