Jarvis-Brain 0.1.13.8__py3-none-any.whl → 0.1.13.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Jarvis_Brain
3
- Version: 0.1.13.8
3
+ Version: 0.1.13.9
4
4
  Summary: Jarvis brain mcp
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: beautifulsoup4
@@ -1,11 +1,11 @@
1
1
  mcp_tools/__init__.py,sha256=_ZzedxbxmVkdRH00ONOjQR31pZW-B8WPn5P2qE6T-Iw,3012
2
- mcp_tools/dp_tools.py,sha256=AzAb5W-3jI_JcU_zz1LhzFiAKQwUuoXkiMQcclhXeZk,25688
2
+ mcp_tools/dp_tools.py,sha256=fPxeXA2OdvISgBebi2BP_uCZekDaJltvTDaYrqUxFzw,26265
3
3
  mcp_tools/main.py,sha256=hIiYV7QVT8XDEDihhTQTUmL7Ftlsd0DlfhKMHEqj244,1262
4
4
  tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  tools/browser_manager.py,sha256=zeYcWuzxoohMdnYUoZbRH7axFC_VtV8MsncfN8y0yw0,2023
6
6
  tools/browser_proxy.py,sha256=VAhuVrBIoXmKyXvCmJh4eRYCWpLIhbTYmFHK8l8eoTA,6590
7
7
  tools/tools.py,sha256=wp5U1PM8Fh2yAZPDmXmCG-svtGIf9n0yb-YL3KPewWI,12928
8
- jarvis_brain-0.1.13.8.dist-info/METADATA,sha256=BBWTdcMJ8iof4QA3E3OxdueAD4jdRvuPO8fWdTGsH3g,264
9
- jarvis_brain-0.1.13.8.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
10
- jarvis_brain-0.1.13.8.dist-info/entry_points.txt,sha256=YFQT4xpkUqt5dM5wlKPQQOqcjMuFrT9iuRAzIpAyH7U,51
11
- jarvis_brain-0.1.13.8.dist-info/RECORD,,
8
+ jarvis_brain-0.1.13.9.dist-info/METADATA,sha256=v6xO6iDGBNOMRkozAVHvNOtyu7lJ478r4w2ig1Z9kmw,264
9
+ jarvis_brain-0.1.13.9.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
10
+ jarvis_brain-0.1.13.9.dist-info/entry_points.txt,sha256=YFQT4xpkUqt5dM5wlKPQQOqcjMuFrT9iuRAzIpAyH7U,51
11
+ jarvis_brain-0.1.13.9.dist-info/RECORD,,
mcp_tools/dp_tools.py CHANGED
@@ -7,7 +7,7 @@ import os
7
7
  import time
8
8
  from typing import Any
9
9
 
10
- import DrissionPage
10
+ from DrissionPage.errors import NoRectError
11
11
  from fastmcp import FastMCP
12
12
 
13
13
  from tools.browser_manager import BrowserManager
@@ -386,36 +386,44 @@ def register_get_ele_info(mcp: FastMCP, browser_manager):
386
386
  css_selector=css_selector,
387
387
  element_index=element_index,
388
388
  )
389
- has_rect = target_element.states.has_rect,
390
- element_rect_size = tuple()
391
- if not has_rect:
392
- element_rect_size = target_element.rect.size,
393
389
  try:
394
- child_count=target_element.child_count
395
- except Exception:
396
- child_count=0
397
- return dp_mcp_message_pack(
398
- message="元素可以被正常的选择到,以下是元素相关的一系列信息",
399
- browser_port=browser_port,
400
- tab_id=tab_id,
401
- css_selector=css_selector,
402
- element_index=element_index,
403
- element_tag=target_element.tag,
404
- element_attrs_key=list(target_element.attrs.keys()),
405
- element_child_count=child_count,
406
- element_rect_size=element_rect_size,
407
- is_in_viewport=target_element.states.is_in_viewport,
408
- is_whole_in_viewport=target_element.states.is_whole_in_viewport,
409
- is_alive=target_element.states.is_alive,
410
- is_checked=target_element.states.is_checked,
411
- is_selected=target_element.states.is_selected,
412
- is_enabled=target_element.states.is_enabled,
413
- is_displayed=target_element.states.is_displayed,
414
- is_covered=target_element.states.is_covered,
415
- is_clickable=target_element.states.is_clickable,
416
- has_rect=has_rect
417
- )
418
-
390
+ has_rect = target_element.states.has_rect,
391
+ element_rect_size = tuple()
392
+ if not has_rect:
393
+ element_rect_size = target_element.rect.size,
394
+ try:
395
+ child_count=target_element.child_count
396
+ except Exception:
397
+ child_count=0
398
+ return dp_mcp_message_pack(
399
+ message="元素可以被正常的选择到,以下是元素相关的一系列信息",
400
+ browser_port=browser_port,
401
+ tab_id=tab_id,
402
+ css_selector=css_selector,
403
+ element_index=element_index,
404
+ element_tag=target_element.tag,
405
+ element_attrs_key=list(target_element.attrs.keys()),
406
+ element_child_count=child_count,
407
+ element_rect_size=element_rect_size,
408
+ is_in_viewport=target_element.states.is_in_viewport,
409
+ is_whole_in_viewport=target_element.states.is_whole_in_viewport,
410
+ is_alive=target_element.states.is_alive,
411
+ is_checked=target_element.states.is_checked,
412
+ is_selected=target_element.states.is_selected,
413
+ is_enabled=target_element.states.is_enabled,
414
+ is_displayed=target_element.states.is_displayed,
415
+ is_covered=target_element.states.is_covered,
416
+ is_clickable=target_element.states.is_clickable,
417
+ has_rect=has_rect
418
+ )
419
+ except NoRectError:
420
+ return dp_mcp_message_pack(
421
+ message="报错:NoRectError: 该元素没有位置及大小。你传入的css_selector和element_index选出的元素没有rect,请确认该元素是否可见",
422
+ browser_port=browser_port,
423
+ tab_id=tab_id,
424
+ css_selector=css_selector,
425
+ element_index=element_index,
426
+ )
419
427
 
420
428
  def register_get_screenshot(mcp: FastMCP, browser_manager):
421
429
  @mcp.tool(name="get_tab_screenshot",