录像过程文件放到临时文件夹;微调参数

This commit is contained in:
g1879 2024-01-03 00:06:23 +08:00
parent 2986e3eeb1
commit ecfa83dcf8
3 changed files with 17 additions and 12 deletions

View File

@ -753,29 +753,29 @@ class ChromiumBase(BasePage):
return self._get_screenshot(path=path, name=name, as_bytes=as_bytes, as_base64=as_base64, 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) 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 :return: 添加的脚本的id
""" """
js_id = self.run_cdp('Page.addScriptToEvaluateOnNewDocument', source=js, js_id = self.run_cdp('Page.addScriptToEvaluateOnNewDocument', source=script,
includeCommandLineAPI=True)['identifier'] includeCommandLineAPI=True)['identifier']
self._init_jss.append(js_id) self._init_jss.append(js_id)
return js_id return js_id
def remove_init_js(self, js_id=None): def remove_init_js(self, script_id=None):
"""删除初始化脚本js_id传入None时删除所有 """删除初始化脚本js_id传入None时删除所有
:param js_id: 脚本的id :param script_id: 脚本的id
:return: None :return: None
""" """
if js_id is None: if script_id is None:
for js_id in self._init_jss: for js_id in self._init_jss:
self.run_cdp('Page.removeScriptToEvaluateOnNewDocument', identifier=js_id) self.run_cdp('Page.removeScriptToEvaluateOnNewDocument', identifier=js_id)
self._init_jss.clear() self._init_jss.clear()
elif js_id in self._init_jss: elif script_id in self._init_jss:
self.run_cdp('Page.removeScriptToEvaluateOnNewDocument', identifier=js_id) self.run_cdp('Page.removeScriptToEvaluateOnNewDocument', identifier=script_id)
self._init_jss.remove(js_id) self._init_jss.remove(script_id)
def clear_cache(self, session_storage=True, local_storage=True, cache=True, cookies=True): def clear_cache(self, session_storage=True, local_storage=True, cache=True, cookies=True):
"""清除缓存,可选要清除的项 """清除缓存,可选要清除的项

View File

@ -214,9 +214,9 @@ class ChromiumBase(BasePage):
def get_local_storage(self, item: str = None) -> Union[str, dict, None]: ... 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, 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, as_base64: PIC_TYPE = None, full_page: bool = False, left_top: Tuple[int, int] = None,

View File

@ -8,6 +8,7 @@ from os.path import sep
from pathlib import Path from pathlib import Path
from random import randint from random import randint
from shutil import rmtree from shutil import rmtree
from tempfile import gettempdir
from threading import Thread from threading import Thread
from time import sleep, time from time import sleep, time
@ -36,7 +37,11 @@ class Screencast(object):
raise ValueError('save_path必须设置。') raise ValueError('save_path必须设置。')
if self._mode in ('frugal_video', 'video'): 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) self._tmp_path.mkdir(parents=True, exist_ok=True)
if self._mode.startswith('frugal'): if self._mode.startswith('frugal'):