Jarvis-Brain 0.1.11.6__tar.gz → 0.1.11.7__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.11.6
3
+ Version: 0.1.11.7
4
4
  Summary: Jarvis brain mcp
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: beautifulsoup4
@@ -237,27 +237,33 @@ def register_assert_waf(mcp: FastMCP, browser_manager):
237
237
 
238
238
 
239
239
  def register_click_action(mcp: FastMCP, browser_manager):
240
- @mcp.tool(name="click_action", description="尝试点击tab页中的元素,返回元素是否可以被点击,以及是否点击成功。")
241
- async def click_action(browser_port: int, tab_id: str, css_selector: str) -> dict[str, Any]:
240
+ @mcp.tool(name="click_action",
241
+ description="尝试点击tab页中的元素,返回元素是否可以被点击,以及是否点击成功。"
242
+ "其中target_element_index默认为0,当传入的Selector可以定位到多个元素时,需要传入target_element_index指定具体点击目标 ")
243
+ async def click_action(browser_port: int, tab_id: str, css_selector: str, target_element_index: int = 0) -> dict[
244
+ str, Any]:
242
245
  _browser = browser_manager.get_browser(browser_port)
243
246
  target_tab = _browser.get_tab(tab_id)
244
247
  css_selector = css_selector
245
248
  if "css:" not in css_selector:
246
249
  css_selector = "css:" + css_selector
247
250
  target_eles = target_tab.eles(css_selector)
248
- click_success = False
249
- element_clickable = False
250
- if len(target_eles) == 1:
251
- target_element = target_eles[0]
252
- element_clickable = target_element.states.is_clickable
253
- try:
254
- target_element.click()
255
- click_success = True
256
- except Exception as e:
257
- click_success = False
258
- message = f"tab页:【{tab_id}】点击【{css_selector}】 {'成功' if click_success else '失败'} 了"
251
+ # click_success = False
252
+ # element_clickable = False
253
+ # if len(target_eles) == 1:
254
+ target_element = target_eles[target_element_index]
255
+ element_clickable = target_element.states.is_clickable
256
+ try:
257
+ target_element.click()
258
+ click_success = True
259
+ except Exception as e:
260
+ click_success = False
261
+ if target_element_index > 0:
262
+ message = f"tab页:【{tab_id}】点击【{css_selector}】【index={target_element_index}】的元素 {'成功' if click_success else '失败'} 了"
259
263
  else:
260
- message = f"tab页:【{tab_id}】传入的css_selector找到了{len(target_eles)}个元素,请确保传入的css_selector可以找到唯一的一个元素"
264
+ message = f"tab页:【{tab_id}】点击【{css_selector}】 {'成功' if click_success else '失败'}"
265
+ # else:
266
+ # message = f"tab页:【{tab_id}】传入的css_selector找到了{len(target_eles)}个元素,请确保传入的css_selector可以找到唯一的一个元素"
261
267
  return dp_mcp_message_pack(
262
268
  message=message,
263
269
  browser_port=browser_port,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Jarvis_Brain" # 别人下载时用的名字,必须在 PyPI 上唯一
3
- version = "0.1.11.6"
3
+ version = "0.1.11.7"
4
4
  description = "Jarvis brain mcp"
5
5
  dependencies = [
6
6
  "fastmcp",
File without changes