From 6e5c16fee63540849f1cf15795d5e60235fb03be Mon Sep 17 00:00:00 2001 From: g1879 Date: Sat, 25 Feb 2023 01:06:46 +0800 Subject: [PATCH] =?UTF-8?q?3.2.3cookies=5Fto=5Fdriver()=E6=94=B9=E5=90=8D?= =?UTF-8?q?=E4=B8=BAcookies=5Fto=5Fbrowser()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/chromium_base.py | 5 ++++- DrissionPage/chromium_page.py | 7 +++++-- DrissionPage/easy_set.py | 2 +- DrissionPage/web_page.py | 6 +++--- DrissionPage/web_page.pyi | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/DrissionPage/chromium_base.py b/DrissionPage/chromium_base.py index 0f1caaf..23902b1 100644 --- a/DrissionPage/chromium_base.py +++ b/DrissionPage/chromium_base.py @@ -64,7 +64,10 @@ class ChromiumBase(BasePage): self._chromium_init() if not tab_id: json = self._control_session.get(f'http://{self.address}/json').json() - tab_id = [i['id'] for i in json if i['type'] == 'page'][0] + tab_id = [i['id'] for i in json if i['type'] == 'page'] + if not tab_id: + raise ConnectionError('连接浏览器失败。') + tab_id = tab_id[0] self._driver_init(tab_id) self._get_document() self._first_run = False diff --git a/DrissionPage/chromium_page.py b/DrissionPage/chromium_page.py index 0f325ed..181cf50 100644 --- a/DrissionPage/chromium_page.py +++ b/DrissionPage/chromium_page.py @@ -81,7 +81,10 @@ class ChromiumPage(ChromiumBase): self.process = connect_browser(self._driver_options)[1] if not tab_id: json = self._control_session.get(f'http://{self.address}/json').json() - tab_id = [i['id'] for i in json if i['type'] == 'page'][0] + tab_id = [i['id'] for i in json if i['type'] == 'page'] + if not tab_id: + raise ConnectionError('连接浏览器失败。') + tab_id = tab_id[0] self._driver_init(tab_id) self._get_document() @@ -398,7 +401,7 @@ class ChromiumTabRect(object): @property def browser_location(self): - """返回浏览器在屏幕上的坐标""" + """返回浏览器在屏幕上的坐标,左上角为(0, 0)""" r = self._get_browser_rect() if r['windowState'] in ('maximized', 'fullscreen'): return 0, 0 diff --git a/DrissionPage/easy_set.py b/DrissionPage/easy_set.py index 51d7e6c..d62a03c 100644 --- a/DrissionPage/easy_set.py +++ b/DrissionPage/easy_set.py @@ -36,7 +36,7 @@ def configs_to_here(save_name=None): :return: None """ om = OptionsManager('default') - save_name = str(save_name) if save_name is not None else 'dp_configs.ini' + save_name = f'{save_name}.ini' if save_name is not None else 'dp_configs.ini' om.save(save_name) diff --git a/DrissionPage/web_page.py b/DrissionPage/web_page.py index c36c694..04b27eb 100644 --- a/DrissionPage/web_page.py +++ b/DrissionPage/web_page.py @@ -326,7 +326,7 @@ class WebPage(SessionPage, ChromiumPage, BasePage): if self._session_url: if copy_cookies: - self.cookies_to_driver() + self.cookies_to_browser() if go: self.get(self._session_url) @@ -356,8 +356,8 @@ class WebPage(SessionPage, ChromiumPage, BasePage): self.set.cookies(self._get_driver_cookies(as_dict=True), set_session=True) - def cookies_to_driver(self): - """把session对象的cookies复制到driver对象""" + def cookies_to_browser(self): + """把session对象的cookies复制到浏览器""" ex_url = extract(self._session_url) domain = f'{ex_url.domain}.{ex_url.suffix}' cookies = [] diff --git a/DrissionPage/web_page.pyi b/DrissionPage/web_page.pyi index 5924383..4beca6e 100644 --- a/DrissionPage/web_page.pyi +++ b/DrissionPage/web_page.pyi @@ -118,7 +118,7 @@ class WebPage(SessionPage, ChromiumPage, BasePage): def cookies_to_session(self, copy_user_agent: bool = True) -> None: ... - def cookies_to_driver(self) -> None: ... + def cookies_to_browser(self) -> None: ... def get_cookies(self, as_dict: bool = False, all_domains: bool = False) -> Union[dict, list]: ...