diff --git a/DrissionPage/_pages/chromium_base.py b/DrissionPage/_pages/chromium_base.py index 5f3ab31..87d0c70 100644 --- a/DrissionPage/_pages/chromium_base.py +++ b/DrissionPage/_pages/chromium_base.py @@ -753,29 +753,29 @@ class ChromiumBase(BasePage): return self._get_screenshot(path=path, name=name, as_bytes=as_bytes, as_base64=as_base64, full_page=full_page, left_top=left_top, right_bottom=right_bottom) - def add_init_js(self, js): + def add_init_js(self, script): """添加初始化脚本,在页面加载任何脚本前执行 - :param js: js文本 + :param script: js文本 :return: 添加的脚本的id """ - js_id = self.run_cdp('Page.addScriptToEvaluateOnNewDocument', source=js, + js_id = self.run_cdp('Page.addScriptToEvaluateOnNewDocument', source=script, includeCommandLineAPI=True)['identifier'] self._init_jss.append(js_id) return js_id - def remove_init_js(self, js_id=None): + def remove_init_js(self, script_id=None): """删除初始化脚本,js_id传入None时删除所有 - :param js_id: 脚本的id + :param script_id: 脚本的id :return: None """ - if js_id is None: + if script_id is None: for js_id in self._init_jss: self.run_cdp('Page.removeScriptToEvaluateOnNewDocument', identifier=js_id) self._init_jss.clear() - elif js_id in self._init_jss: - self.run_cdp('Page.removeScriptToEvaluateOnNewDocument', identifier=js_id) - self._init_jss.remove(js_id) + elif script_id in self._init_jss: + self.run_cdp('Page.removeScriptToEvaluateOnNewDocument', identifier=script_id) + self._init_jss.remove(script_id) def clear_cache(self, session_storage=True, local_storage=True, cache=True, cookies=True): """清除缓存,可选要清除的项 diff --git a/DrissionPage/_pages/chromium_base.pyi b/DrissionPage/_pages/chromium_base.pyi index ab120ec..a24ddd8 100644 --- a/DrissionPage/_pages/chromium_base.pyi +++ b/DrissionPage/_pages/chromium_base.pyi @@ -214,9 +214,9 @@ class ChromiumBase(BasePage): def get_local_storage(self, item: str = None) -> Union[str, dict, None]: ... - def add_init_js(self, js: str) -> str: ... + def add_init_js(self, script: str) -> str: ... - def remove_init_js(self, js_id: str = None) -> None: ... + def remove_init_js(self, script_id: str = None) -> None: ... def get_screenshot(self, path: [str, Path] = None, name: str = None, as_bytes: PIC_TYPE = None, as_base64: PIC_TYPE = None, full_page: bool = False, left_top: Tuple[int, int] = None, diff --git a/DrissionPage/_units/screencast.py b/DrissionPage/_units/screencast.py index ab60b83..b752f27 100644 --- a/DrissionPage/_units/screencast.py +++ b/DrissionPage/_units/screencast.py @@ -8,6 +8,7 @@ from os.path import sep from pathlib import Path from random import randint from shutil import rmtree +from tempfile import gettempdir from threading import Thread from time import sleep, time @@ -36,7 +37,11 @@ class Screencast(object): raise ValueError('save_path必须设置。') if self._mode in ('frugal_video', 'video'): - self._tmp_path = self._path / f'screencast_tmp_{time()}_{randint(0, 100)}' + if self._page.browser.page._chromium_options.tmp_path: + self._tmp_path = Path( + self._page.browser.page._chromium_options.tmp_path) / f'screencast_tmp_{time()}_{randint(0, 100)}' + else: + self._tmp_path = Path(gettempdir()) / 'DrissionPage' / f'screencast_tmp_{time()}_{randint(0, 100)}' self._tmp_path.mkdir(parents=True, exist_ok=True) if self._mode.startswith('frugal'):