From bda0f9972a82547aeceeef906b52a1b8d6e6636a Mon Sep 17 00:00:00 2001 From: g1879 Date: Wed, 5 Aug 2020 17:33:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=87=E6=8D=A2=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E6=97=B6url=E5=87=BA=E9=94=99=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/mix_page.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/DrissionPage/mix_page.py b/DrissionPage/mix_page.py index a876d4a..61d718a 100644 --- a/DrissionPage/mix_page.py +++ b/DrissionPage/mix_page.py @@ -56,10 +56,13 @@ class MixPage(Null, SessionPage, DriverPage): raise ValueError("Argument mode can only be 'd' or 's'.") @property - def url(self) -> str: + def url(self) -> Union[str, None]: """根据模式获取当前活动的url""" if self._mode == 'd': - return super(SessionPage, self).url + if not self._driver or not self._drission.driver.current_url.startswith('http'): + return None + else: + return self._drission.driver.current_url elif self._mode == 's': return self.session_url @@ -85,19 +88,19 @@ class MixPage(Null, SessionPage, DriverPage): return self._mode = 's' if self._mode == 'd' else 'd' if self._mode == 'd': # s转d - self._url = super(SessionPage, self).url + self._driver = True + self._url = None if not self._driver else self._drission.driver.current_url if self.session_url: self.cookies_to_driver(self.session_url) - if go: - self.get(self.session_url) + if go: + self.get(self.session_url) elif self._mode == 's': # d转s + self._session = True self._url = self.session_url - if self._session is None: - self._session = True if self._driver: self.cookies_to_session() - if go: - self.get(super(SessionPage, self).url) + if go and self._drission.driver.current_url.startswith('http'): + self.get(self._drission.driver.current_url) @property def drission(self) -> Drission: @@ -197,7 +200,6 @@ class MixPage(Null, SessionPage, DriverPage): return super().ele(loc_or_ele, mode=mode, show_errmsg=show_errmsg) elif self._mode == 'd': timeout = timeout or self.timeout - # return super(SessionPage, self).ele(loc_or_ele, mode=mode, timeout=timeout, show_errmsg=show_errmsg) return DriverPage.ele(self, loc_or_ele, mode=mode, timeout=timeout, show_errmsg=show_errmsg) def eles(self, loc_or_str: Union[tuple, str], timeout: float = None, show_errmsg: bool = False) \