diff --git a/DrissionPage/chromium_base.py b/DrissionPage/chromium_base.py index 6f397ad..52a43b0 100644 --- a/DrissionPage/chromium_base.py +++ b/DrissionPage/chromium_base.py @@ -168,6 +168,8 @@ class ChromiumBase(BasePage): if self._debug_recorder: self._debug_recorder.add_data((perf_counter(), '加载流程', 'loadEventFired')) + self._get_document() + def _onDocumentUpdated(self, **kwargs): """页面跳转时触发""" if self._debug: @@ -177,10 +179,12 @@ class ChromiumBase(BasePage): def _onFrameNavigated(self, **kwargs): """页面跳转时触发""" - if self._debug and not kwargs['frame'].get('parentId', None): - print('navigated') - if self._debug_recorder: - self._debug_recorder.add_data((perf_counter(), '加载流程', 'navigated')) + if kwargs['frame'].get('parentId', None) == self.tab_id and self._first_run is False and self._is_loading: + self._is_loading = True + if self._debug: + print('navigated') + if self._debug_recorder: + self._debug_recorder.add_data((perf_counter(), '加载流程', 'navigated')) def __call__(self, loc_or_str, timeout=None): """在内部查找元素 diff --git a/DrissionPage/chromium_page.py b/DrissionPage/chromium_page.py index 21817ad..0738a68 100644 --- a/DrissionPage/chromium_page.py +++ b/DrissionPage/chromium_page.py @@ -261,6 +261,10 @@ class ChromiumPage(ChromiumBase): """跳转到主标签页""" self.to_tab(self._main_tab) + def to_new_tab(self): + """切换到最新的标签页""" + self.to_tab(self.tabs[0]) + def to_tab(self, tab_id=None, activate=True): """跳转到标签页 :param tab_id: 标签页id字符串,默认跳转到main_tab diff --git a/DrissionPage/chromium_page.pyi b/DrissionPage/chromium_page.pyi index 2d18475..786807d 100644 --- a/DrissionPage/chromium_page.pyi +++ b/DrissionPage/chromium_page.pyi @@ -83,8 +83,12 @@ class ChromiumPage(ChromiumBase): def new_tab(self, url: str = None, switch_to: bool = True) -> None: ... + def set_main_tab(self, tab_id: str = None) -> None: ... + def to_main_tab(self) -> None: ... + def to_new_tab(self) -> None: ... + def to_tab(self, tab_id: str = None, activate: bool = True) -> None: ... def _to_tab(self, tab_id: str = None, activate: bool = True, read_doc: bool = True) -> None: ...