mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
增加after(),before(),afters(),before()定位方法,原来after和before改为pseudo_after和pseudo_before
This commit is contained in:
parent
d2df243776
commit
35453ce273
@ -138,37 +138,77 @@ class DrissionElement(BaseElement):
|
||||
|
||||
return self.ele(loc, timeout=0)
|
||||
|
||||
def prev(self, index: int = 1, filter_loc: Union[tuple, str] = ''):
|
||||
def prev(self, index: int = 1, filter_loc: Union[tuple, str] = '', timeout: float = 0):
|
||||
"""返回前面的一个兄弟元素,可用查询语法筛选,可指定返回筛选结果的第几个 \n
|
||||
:param index: 前面第几个查询结果元素
|
||||
:param filter_loc: 用于筛选元素的查询语法
|
||||
:param timeout: 查找元素的超时时间
|
||||
:return: 兄弟元素
|
||||
"""
|
||||
nodes = self._get_brothers(index=index, filter_loc=filter_loc, direction='preceding')
|
||||
nodes = self._get_brothers(index, filter_loc, 'preceding', timeout=timeout)
|
||||
return nodes[-1] if nodes else None
|
||||
|
||||
def next(self, index: int = 1, filter_loc: Union[tuple, str] = ''):
|
||||
def next(self, index: int = 1, filter_loc: Union[tuple, str] = '', timeout: float = 0):
|
||||
"""返回后面的一个兄弟元素,可用查询语法筛选,可指定返回筛选结果的第几个 \n
|
||||
:param index: 后面第几个查询结果元素
|
||||
:param filter_loc: 用于筛选元素的查询语法
|
||||
:param timeout: 查找元素的超时时间
|
||||
:return: 兄弟元素
|
||||
"""
|
||||
nodes = self._get_brothers(index=index, filter_loc=filter_loc, direction='following')
|
||||
nodes = self._get_brothers(index, filter_loc, 'following', timeout=timeout)
|
||||
return nodes[0] if nodes else None
|
||||
|
||||
def nexts(self, filter_loc: Union[tuple, str] = ''):
|
||||
def nexts(self, filter_loc: Union[tuple, str] = '', timeout: float = 0):
|
||||
"""返回后面全部兄弟元素或节点组成的列表,可用查询语法筛选 \n
|
||||
:param filter_loc: 用于筛选元素的查询语法
|
||||
:param timeout: 查找元素的超时时间
|
||||
:return: SessionElement对象
|
||||
"""
|
||||
return self._get_brothers(filter_loc=filter_loc, direction='following')
|
||||
return self._get_brothers(filter_loc=filter_loc, direction='following', timeout=timeout)
|
||||
|
||||
def prevs(self, filter_loc: Union[tuple, str] = ''):
|
||||
def prevs(self, filter_loc: Union[tuple, str] = '', timeout: float = 0):
|
||||
"""返回前面全部兄弟元素或节点组成的列表,可用查询语法筛选 \n
|
||||
:param filter_loc: 用于筛选元素的查询语法
|
||||
:param timeout: 查找元素的超时时间
|
||||
:return: SessionElement对象
|
||||
"""
|
||||
return self._get_brothers(filter_loc=filter_loc, direction='preceding')
|
||||
return self._get_brothers(filter_loc=filter_loc, direction='preceding', timeout=timeout)
|
||||
|
||||
def before(self, index: int = 1, filter_loc: Union[tuple, str] = '', timeout: float = None):
|
||||
"""返回前面的一个兄弟元素,可用查询语法筛选,可指定返回筛选结果的第几个 \n
|
||||
:param index: 前面第几个查询结果元素
|
||||
:param filter_loc: 用于筛选元素的查询语法
|
||||
:param timeout: 查找元素的超时时间
|
||||
:return: 兄弟元素
|
||||
"""
|
||||
nodes = self._get_brothers(index, filter_loc, 'preceding', False, timeout=timeout)
|
||||
return nodes[-1] if nodes else None
|
||||
|
||||
def after(self, index: int = 1, filter_loc: Union[tuple, str] = '', timeout: float = None):
|
||||
"""返回后面的一个兄弟元素,可用查询语法筛选,可指定返回筛选结果的第几个 \n
|
||||
:param index: 后面第几个查询结果元素
|
||||
:param filter_loc: 用于筛选元素的查询语法
|
||||
:param timeout: 查找元素的超时时间
|
||||
:return: 兄弟元素
|
||||
"""
|
||||
nodes = self._get_brothers(index, filter_loc, 'following', False, timeout)
|
||||
return nodes[0] if nodes else None
|
||||
|
||||
def befores(self, filter_loc: Union[tuple, str] = '', timeout: float = None):
|
||||
"""返回后面全部兄弟元素或节点组成的列表,可用查询语法筛选 \n
|
||||
:param filter_loc: 用于筛选元素的查询语法
|
||||
:param timeout: 查找元素的超时时间
|
||||
:return: SessionElement对象
|
||||
"""
|
||||
return self._get_brothers(filter_loc=filter_loc, direction='following', brother=False, timeout=timeout)
|
||||
|
||||
def afters(self, filter_loc: Union[tuple, str] = '', timeout: float = None):
|
||||
"""返回前面全部兄弟元素或节点组成的列表,可用查询语法筛选 \n
|
||||
:param filter_loc: 用于筛选元素的查询语法
|
||||
:param timeout: 查找元素的超时时间
|
||||
:return: SessionElement对象
|
||||
"""
|
||||
return self._get_brothers(filter_loc=filter_loc, direction='preceding', brother=False, timeout=timeout)
|
||||
|
||||
def _get_brothers(self,
|
||||
index: int = None,
|
||||
|
@ -220,12 +220,12 @@ class DriverElement(DrissionElement):
|
||||
return self.shadow_root
|
||||
|
||||
@property
|
||||
def before(self) -> str:
|
||||
def pseudo_before(self) -> str:
|
||||
"""返回当前元素的::before伪元素内容"""
|
||||
return self.style('content', 'before')
|
||||
|
||||
@property
|
||||
def after(self) -> str:
|
||||
def pseudo_after(self) -> str:
|
||||
"""返回当前元素的::after伪元素内容"""
|
||||
return self.style('content', 'after')
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user