mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
页面对象可用xpath直接返回文本或注释
This commit is contained in:
parent
c021d83212
commit
561c20377a
@ -39,7 +39,11 @@ class ChromiumElement(DrissionElement):
|
||||
self._tag = None
|
||||
self._wait = None
|
||||
|
||||
if node_id:
|
||||
if node_id and obj_id and backend_id:
|
||||
self._node_id = node_id
|
||||
self._obj_id = obj_id
|
||||
self._backend_id = backend_id
|
||||
elif node_id:
|
||||
self._node_id = node_id
|
||||
self._obj_id = self._get_obj_id(node_id)
|
||||
self._backend_id = self._get_backend_id(self._node_id)
|
||||
@ -1163,7 +1167,24 @@ def make_chromium_ele(page, node_id=None, obj_id=None):
|
||||
:param obj_id: 元素的object id
|
||||
:return: ChromiumElement对象或ChromiumFrame对象
|
||||
"""
|
||||
ele = ChromiumElement(page, obj_id=obj_id, node_id=node_id)
|
||||
if node_id:
|
||||
node = page.run_cdp('DOM.describeNode', nodeId=node_id)
|
||||
if node['node']['nodeName'] in ('#text', '#comment'):
|
||||
return node['node']['nodeValue']
|
||||
backend_id = node['node']['backendNodeId']
|
||||
obj_id = page.run_cdp('DOM.resolveNode', nodeId=node_id)['object']['objectId']
|
||||
|
||||
elif obj_id:
|
||||
node = page.run_cdp('DOM.describeNode', objectId=obj_id)
|
||||
if node['node']['nodeName'] in ('#text', '#comment'):
|
||||
return node['node']['nodeValue']
|
||||
backend_id = node['node']['backendNodeId']
|
||||
node_id = node['node']['nodeId']
|
||||
|
||||
else:
|
||||
raise ElementLossError
|
||||
|
||||
ele = ChromiumElement(page, obj_id=obj_id, node_id=node_id, backend_id=backend_id)
|
||||
if ele.tag in FRAME_ELEMENT:
|
||||
from .chromium_frame import ChromiumFrame
|
||||
ele = ChromiumFrame(page, ele)
|
||||
|
@ -360,7 +360,7 @@ def find_by_css(ele: ChromiumElement,
|
||||
|
||||
|
||||
def make_chromium_ele(page: ChromiumBase, node_id: str = ..., obj_id: str = ...) \
|
||||
-> Union[ChromiumElement, ChromiumFrame]: ...
|
||||
-> Union[ChromiumElement, ChromiumFrame, str]: ...
|
||||
|
||||
|
||||
def make_js_for_find_ele_by_xpath(xpath: str, type_txt: str, node_txt: str) -> str: ...
|
||||
|
Loading…
x
Reference in New Issue
Block a user