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.session_page import SessionPage
|
||||||
from ._pages.web_page import WebPage
|
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)
|
r = self._find_elements(locator, timeout=timeout, index=index, relative=relative, raise_err=raise_err)
|
||||||
if r or isinstance(r, list):
|
if r or isinstance(r, list):
|
||||||
return r
|
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})
|
raise ElementNotFoundError(None, method, {'locator': locator, 'index': index, 'timeout': timeout})
|
||||||
|
|
||||||
r.method = method
|
r.method = method
|
||||||
@ -356,7 +356,7 @@ class BasePage(BaseParser):
|
|||||||
r = self._find_elements(locator, timeout=timeout, index=index, raise_err=raise_err)
|
r = self._find_elements(locator, timeout=timeout, index=index, raise_err=raise_err)
|
||||||
if r or isinstance(r, list):
|
if r or isinstance(r, list):
|
||||||
return r
|
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})
|
raise ElementNotFoundError(None, method, {'locator': locator, 'index': index, 'timeout': timeout})
|
||||||
|
|
||||||
r.method = method
|
r.method = method
|
||||||
|
@ -6,8 +6,9 @@ from time import perf_counter, sleep
|
|||||||
class Console(object):
|
class Console(object):
|
||||||
def __init__(self, owner):
|
def __init__(self, owner):
|
||||||
self._owner = owner
|
self._owner = owner
|
||||||
self.listening = False
|
|
||||||
self._caught = None
|
self._caught = None
|
||||||
|
self._not_enabled = True
|
||||||
|
self.listening = False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def messages(self):
|
def messages(self):
|
||||||
@ -21,12 +22,13 @@ class Console(object):
|
|||||||
def start(self):
|
def start(self):
|
||||||
self._caught = Queue(maxsize=0)
|
self._caught = Queue(maxsize=0)
|
||||||
self._owner._driver.set_callback("Console.messageAdded", self._console)
|
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
|
self.listening = True
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
if self.listening:
|
if self.listening:
|
||||||
self._owner._run_cdp("Console.disable")
|
|
||||||
self._owner._driver.set_callback('Console.messageAdded', None)
|
self._owner._driver.set_callback('Console.messageAdded', None)
|
||||||
self.listening = False
|
self.listening = False
|
||||||
|
|
||||||
@ -61,6 +63,7 @@ class Console(object):
|
|||||||
while self._owner._driver.is_running and self.listening and perf_counter() < end:
|
while self._owner._driver.is_running and self.listening and perf_counter() < end:
|
||||||
if self._caught.qsize():
|
if self._caught.qsize():
|
||||||
yield self._caught.get_nowait()
|
yield self._caught.get_nowait()
|
||||||
|
end = perf_counter() + timeout
|
||||||
sleep(0.05)
|
sleep(0.05)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -80,3 +83,11 @@ class ConsoleData(object):
|
|||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return (f'<ConsoleData source={self.source} level={self.level} text={self.text} url={self.url} '
|
return (f'<ConsoleData source={self.source} level={self.level} text={self.text} url={self.url} '
|
||||||
f'line={self.line} column={self.column} >')
|
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 -*-
|
# -*- coding:utf-8 -*-
|
||||||
from queue import Queue
|
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
|
from .._pages.chromium_base import ChromiumBase
|
||||||
|
|
||||||
@ -9,6 +9,7 @@ class Console(object):
|
|||||||
listening: bool = ...
|
listening: bool = ...
|
||||||
_owner: ChromiumBase = ...
|
_owner: ChromiumBase = ...
|
||||||
_caught: Optional[Queue] = ...
|
_caught: Optional[Queue] = ...
|
||||||
|
_not_enabled: bool = ...
|
||||||
|
|
||||||
def __init__(self, owner: ChromiumBase) -> None:
|
def __init__(self, owner: ChromiumBase) -> None:
|
||||||
"""
|
"""
|
||||||
@ -56,3 +57,6 @@ class ConsoleData(object):
|
|||||||
def __init__(self, data: dict) -> None: ...
|
def __init__(self, data: dict) -> None: ...
|
||||||
|
|
||||||
def __getattr__(self, item: str) -> str: ...
|
def __getattr__(self, item: str) -> str: ...
|
||||||
|
|
||||||
|
@property
|
||||||
|
def body(self) -> Any: ...
|
||||||
|
Loading…
x
Reference in New Issue
Block a user