mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
4.1.0.1修复Settings.raise_when_ele_not_found为Ture时一个问题;ConsoleData增加body属性;修复consloe重复获取信息问题
This commit is contained in:
parent
758fcf8b73
commit
a8b89b51e2
@ -12,4 +12,4 @@ from ._pages.chromium_page import ChromiumPage
|
||||
from ._pages.session_page import SessionPage
|
||||
from ._pages.web_page import WebPage
|
||||
|
||||
__version__ = '4.1.0.0'
|
||||
__version__ = '4.1.0.1'
|
||||
|
@ -90,7 +90,7 @@ class BaseElement(BaseParser):
|
||||
r = self._find_elements(locator, timeout=timeout, index=index, relative=relative, raise_err=raise_err)
|
||||
if r or isinstance(r, list):
|
||||
return r
|
||||
if Settings.raise_when_ele_not_found or raise_err is True:
|
||||
if raise_err is True or (Settings.raise_when_ele_not_found and raise_err is None):
|
||||
raise ElementNotFoundError(None, method, {'locator': locator, 'index': index, 'timeout': timeout})
|
||||
|
||||
r.method = method
|
||||
@ -356,7 +356,7 @@ class BasePage(BaseParser):
|
||||
r = self._find_elements(locator, timeout=timeout, index=index, raise_err=raise_err)
|
||||
if r or isinstance(r, list):
|
||||
return r
|
||||
if Settings.raise_when_ele_not_found or raise_err is True:
|
||||
if raise_err is True or (Settings.raise_when_ele_not_found and raise_err is None):
|
||||
raise ElementNotFoundError(None, method, {'locator': locator, 'index': index, 'timeout': timeout})
|
||||
|
||||
r.method = method
|
||||
|
@ -6,8 +6,9 @@ from time import perf_counter, sleep
|
||||
class Console(object):
|
||||
def __init__(self, owner):
|
||||
self._owner = owner
|
||||
self.listening = False
|
||||
self._caught = None
|
||||
self._not_enabled = True
|
||||
self.listening = False
|
||||
|
||||
@property
|
||||
def messages(self):
|
||||
@ -21,12 +22,13 @@ class Console(object):
|
||||
def start(self):
|
||||
self._caught = Queue(maxsize=0)
|
||||
self._owner._driver.set_callback("Console.messageAdded", self._console)
|
||||
self._owner._run_cdp("Console.enable")
|
||||
if self._not_enabled:
|
||||
self._owner._run_cdp("Console.enable")
|
||||
self._not_enabled = False
|
||||
self.listening = True
|
||||
|
||||
def stop(self):
|
||||
if self.listening:
|
||||
self._owner._run_cdp("Console.disable")
|
||||
self._owner._driver.set_callback('Console.messageAdded', None)
|
||||
self.listening = False
|
||||
|
||||
@ -61,6 +63,7 @@ class Console(object):
|
||||
while self._owner._driver.is_running and self.listening and perf_counter() < end:
|
||||
if self._caught.qsize():
|
||||
yield self._caught.get_nowait()
|
||||
end = perf_counter() + timeout
|
||||
sleep(0.05)
|
||||
return False
|
||||
|
||||
@ -80,3 +83,11 @@ class ConsoleData(object):
|
||||
def __repr__(self):
|
||||
return (f'<ConsoleData source={self.source} level={self.level} text={self.text} url={self.url} '
|
||||
f'line={self.line} column={self.column} >')
|
||||
|
||||
@property
|
||||
def body(self):
|
||||
from json import loads
|
||||
try:
|
||||
return loads(self.text)
|
||||
except:
|
||||
return self._raw_body
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
from queue import Queue
|
||||
from typing import Optional, Iterable, List, Union
|
||||
from typing import Optional, Iterable, List, Union, Any
|
||||
|
||||
from .._pages.chromium_base import ChromiumBase
|
||||
|
||||
@ -9,6 +9,7 @@ class Console(object):
|
||||
listening: bool = ...
|
||||
_owner: ChromiumBase = ...
|
||||
_caught: Optional[Queue] = ...
|
||||
_not_enabled: bool = ...
|
||||
|
||||
def __init__(self, owner: ChromiumBase) -> None:
|
||||
"""
|
||||
@ -56,3 +57,6 @@ class ConsoleData(object):
|
||||
def __init__(self, data: dict) -> None: ...
|
||||
|
||||
def __getattr__(self, item: str) -> str: ...
|
||||
|
||||
@property
|
||||
def body(self) -> Any: ...
|
||||
|
Loading…
x
Reference in New Issue
Block a user