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._tag = None
|
||||||
self._wait = 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._node_id = node_id
|
||||||
self._obj_id = self._get_obj_id(node_id)
|
self._obj_id = self._get_obj_id(node_id)
|
||||||
self._backend_id = self._get_backend_id(self._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
|
:param obj_id: 元素的object id
|
||||||
:return: ChromiumElement对象或ChromiumFrame对象
|
: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:
|
if ele.tag in FRAME_ELEMENT:
|
||||||
from .chromium_frame import ChromiumFrame
|
from .chromium_frame import ChromiumFrame
|
||||||
ele = ChromiumFrame(page, ele)
|
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 = ...) \
|
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: ...
|
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