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

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,
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):
"""清除缓存,可选要清除的项

View File

@ -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,

View File

@ -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'):