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)