From ef577a9131906c79d09a700b852319ed76e3fc63 Mon Sep 17 00:00:00 2001 From: g1879 Date: Sun, 31 Mar 2024 17:32:04 +0800 Subject: [PATCH] =?UTF-8?q?4.0.4.21=E4=BF=AE=E5=A4=8Dwait.eles=5Floaded()?= =?UTF-8?q?=E5=92=8C=E8=AE=BE=E7=BD=AEcookies=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/__init__.py | 2 +- DrissionPage/_functions/web.py | 7 +++++-- DrissionPage/_units/waiter.py | 8 ++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/DrissionPage/__init__.py b/DrissionPage/__init__.py index a77e654..a071967 100644 --- a/DrissionPage/__init__.py +++ b/DrissionPage/__init__.py @@ -14,4 +14,4 @@ from ._configs.chromium_options import ChromiumOptions from ._configs.session_options import SessionOptions __all__ = ['ChromiumPage', 'ChromiumOptions', 'SessionOptions', 'SessionPage', 'WebPage', '__version__'] -__version__ = '4.0.4.20' +__version__ = '4.0.4.21' diff --git a/DrissionPage/_functions/web.py b/DrissionPage/_functions/web.py index 271bf9d..341e14e 100644 --- a/DrissionPage/_functions/web.py +++ b/DrissionPage/_functions/web.py @@ -207,9 +207,9 @@ def cookies_to_tuple(cookies): elif isinstance(cookies, str): c_dict = {} - for attr in cookies.strip().rstrip(';,').split(',' if ',' in cookies else ';'): + for attr in cookies.strip().rstrip(';, ').split(',' if ',' in cookies else ';'): attr_val = attr.strip().split('=', 1) - c_dict[attr_val[0]] = attr_val[1] if len(attr_val) == 2 else '' + c_dict[attr_val[0]] = attr_val[1] if len(attr_val) == 2 else True cookies = _dict_cookies_to_tuple(c_dict) elif isinstance(cookies, dict): @@ -300,6 +300,9 @@ def set_browser_cookies(page, cookies): except Exception: pass + if not page._browser_url.startswith('http'): + raise RuntimeError(f'未设置域名,请设置cookie的domain参数或先访问一个网站。{cookie}') + ex_url = extract(page._browser_url) d_list = ex_url.subdomain.split('.') d_list.append(f'{ex_url.domain}.{ex_url.suffix}' if ex_url.suffix else ex_url.domain) diff --git a/DrissionPage/_units/waiter.py b/DrissionPage/_units/waiter.py index f244479..4e6e3c4 100644 --- a/DrissionPage/_units/waiter.py +++ b/DrissionPage/_units/waiter.py @@ -98,8 +98,12 @@ class BaseWaiter(OriginWaiter): driver.run('DOM.discardSearchResults', searchId=r['searchId']) return False searchId = r['searchId'] - ids = driver.run('DOM.getSearchResults', searchId=r['searchId'], fromIndex=0, - toIndex=r['resultCount'] - 1)['nodeIds'] + ids = driver.run('DOM.getSearchResults', searchId=searchId, fromIndex=0, + toIndex=r['resultCount']) + if 'error' in ids: + return False + + ids = ids['nodeIds'] res = False for i in ids: r = driver.run('DOM.describeNode', nodeId=i)