Jarvis-Brain 0.1.8.4__tar.gz → 0.1.9.1__tar.gz

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.8.4
3
+ Version: 0.1.9.1
4
4
  Summary: Jarvis brain mcp
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: beautifulsoup4
@@ -231,9 +231,9 @@ def register_click_action(mcp: FastMCP, browser_manager):
231
231
  click_success = True
232
232
  except Exception as e:
233
233
  click_success = False
234
- message = f"点击【{css_selector}】 {'成功' if click_success else '失败'}"
234
+ message = f"tab页:【{tab_id}】点击【{css_selector}】 {'成功' if click_success else '失败'}"
235
235
  else:
236
- message = f"传入的css_selector找到了{len(target_eles)}个元素,请确保传入的css_selector可以找到唯一的一个元素"
236
+ message = f"tab页:【{tab_id}】传入的css_selector找到了{len(target_eles)}个元素,请确保传入的css_selector可以找到唯一的一个元素"
237
237
  return dp_mcp_message_pack(
238
238
  message=message,
239
239
  browser_port=browser_port,
@@ -243,3 +243,42 @@ def register_click_action(mcp: FastMCP, browser_manager):
243
243
  click_success=click_success,
244
244
  extra_message="点击成功,页面可能有更新,请重新获取页面html,并重新分析页面Selector" if click_success else ""
245
245
  )
246
+
247
+
248
+ def register_scroll_action(mcp: FastMCP, browser_manager):
249
+ @mcp.tool(name="scroll_action", description="尝试滚动tab页"
250
+ "forward参数是滚动的方向:down、up、left、right"
251
+ "pixel参数是滚动的像素值,默认为None。"
252
+ "当forward为down且pixel为None,则将页面滚动到垂直中间位置,水平位置不变"
253
+ "当forward为up且pixel为None,则将页面滚动到顶部,水平位置不变"
254
+ "当forward为left且pixel为None,则将页面滚动到最左边,垂直位置不变"
255
+ "当forward为right且pixel为None,则将页面滚动到最右边,垂直位置不变")
256
+ async def scroll_action(browser_port: int, tab_id: str, forward: str = "down", pixel: int = None) -> dict[str, Any]:
257
+ _browser = browser_manager.get_browser(browser_port)
258
+ target_tab = _browser.get_tab(tab_id)
259
+ if forward == "down":
260
+ if pixel is None:
261
+ target_tab.scroll.to_half()
262
+ target_tab.scroll.down(pixel)
263
+ elif forward == "up":
264
+ if pixel is None:
265
+ target_tab.scroll.to_top()
266
+ target_tab.scroll.up(pixel)
267
+ elif forward == "left":
268
+ if pixel is None:
269
+ target_tab.scroll.to_leftmost()
270
+ target_tab.scroll.left(pixel)
271
+ elif forward == "right":
272
+ if pixel is None:
273
+ target_tab.scroll.to_rightmost()
274
+ target_tab.scroll.right(pixel)
275
+ else:
276
+ if pixel is None:
277
+ target_tab.scroll.to_half()
278
+ target_tab.scroll.down()
279
+ message = f"已完成对tab页:【{tab_id}】forward={forward} 的滑动"
280
+ return dp_mcp_message_pack(
281
+ message=message,
282
+ browser_port=browser_port,
283
+ tab_id=tab_id,
284
+ )
@@ -22,6 +22,7 @@ if "TeamNode-Dp" in enabled_modules:
22
22
  register_pop_first_packet(mcp, browser_manager, client_manager)
23
23
  # 页面交互
24
24
  register_click_action(mcp, browser_manager)
25
+ register_scroll_action(mcp, browser_manager)
25
26
 
26
27
  if "JarvisNode" in enabled_modules:
27
28
  register_assert_waf(mcp, browser_manager)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Jarvis_Brain" # 别人下载时用的名字,必须在 PyPI 上唯一
3
- version = "0.1.8.4"
3
+ version = "0.1.9.1"
4
4
  description = "Jarvis brain mcp"
5
5
  dependencies = [
6
6
  "fastmcp",
@@ -29,7 +29,7 @@ class DPProxyClient:
29
29
  :return:
30
30
  """
31
31
  if start_listen:
32
- self.driver.listen.set_targets(res_type="XHR")
32
+ self.driver.listen.set_targets(targets="api|jsonp|callback", is_regex=True, res_type=('xhr', 'fetch'))
33
33
  self.driver.listen.start()
34
34
  self.thread = threading.Thread(target=self.start_listen, args=(count, timeout,))
35
35
  self.thread.start()
File without changes
File without changes