<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      利用 chrome-devtools MCP 讓 AI 操作便攜版瀏覽器(可指定 Data)

      說明:文中出現的具體視頻鏈接、演示路徑、用戶名、端口號等均為示例,讀者需按需替換。

      1. 需求

      (1)使用 chrome-devtools-mcp 打開 https://www.bilibili.com/video/BV1fEsfzrEc7/?spm_id_from=333.1007.tianma.1-2-2.click&vd_source=7c7ae5cc1dbb2453e1eb43950a4264a3 (讀者需按需替換)
      (2)暫停視頻播放
      (3)查找并點擊該視頻頁面的所有“點擊查看”文本元素

      2. 背景與試驗

      ??上述需求要查看嗶站視頻評論,必須要登錄才行。但是,通常 AI 工具調用瀏覽器完成任務時,不支持持久化用戶數據目錄(不支持指定 Data 目錄,每次都會創建臨時目錄)。
      ??在 Cursor 2.x 中,通過 Cursor 2.x 內置的 Browser Automation 和 chrome-devtools mcp 兩種方式進行試驗。每次調用 Chrome 打開嗶站后,都無法直接查看評論,更無法點擊評論中的“點擊查看”文本元素。每次都需要手動登錄嗶站后,才能完成點擊評論中的“點擊查看”文本元素的任務,這很繁瑣。

      3. 問題:Cursor 2.x 能否在啟動 Chrome 時指定 Data 目錄?

      (1)Browser Automation 方式不支持指定 Data 目錄。
      ??經 Cursor 深入研究 https://github.com/worryzyy/awesome-cursor-download ,已經核實 Browser Automation 方式不支持持久化用戶數據目錄(每次創建臨時目錄)。
      (2)chrome-devtools mcp 方式支持指定 Data 目錄。
      ??經 Cursor 深入研究 https://developer.chrome.com/blog/chrome-devtools-mcp ,chrome-devtools mcp 有兩種方式支持指定 Data 目錄。
      ??一種方式是在 C:\Users\WinUser01.cursor\mcp.json(讀者需按需替換)添加類似下面的配置:

      {
       "mcpServers": {
         "chrome-devtools": {
           "command": "npx",
           "args": [
             "chrome-devtools-mcp@latest",
             "--chrome-arg=--user-data-dir=C:\\Users\\YourName\\chrome-mcp-profile"
           ]
         }
       }
      }
      

      ??另一種方式是先啟動攜帶 --remote-debugging-port=9222、指定 Data 目錄的 Chrome 進程(可以是安裝版、也可以是便攜版),并在 C:\Users\WinUser01.cursor\mcp.json(讀者需按需替換)添加類似下面的配置,讓 Cursor 2.x 直接調用已經啟動的 Chrome 進程來完成任務:

      {
        "mcpServers": {
          "chrome-devtools": {
            "command": "npx",
            "args": [
              "chrome-devtools-mcp@latest",
              "--browser-url=http://127.0.0.1:9222"
            ]
          }
        }
      }
      

      4. 實現步驟

      ??下面,將在 Cursor 2.x 環境、以便攜版 Chrome 為例,說明具體的實現步驟。
      (1)先安裝配置好 Cursor 2.x。打開 Cursor 2.x 的“Settings”窗口,左側“Tools & MCP”,右側點擊“New MCP Server”編輯 C:\Users\WinUser01.cursor\mcp.json(讀者需按需替換),添加以下內容,端口號為 9222(可以根據需要更改,但必須與后面 start-chrome-and-cursor-OK.vbs 中啟動 Chrome 進程時指定的端口號一致):

      {
        "mcpServers": {
          "chrome-devtools": {
            "command": "npx",
            "args": [
              "chrome-devtools-mcp@latest",
              "--browser-url=http://127.0.0.1:9222"
            ]
          }
        }
      }
      

      ??配置好之后,需要關閉 Cursor、并結束內存中的所有 Cursor 進程,再重啟 Cursor 才能生效。重啟后,打開“Settings”窗口,左側“Tools & MCP”右側“Installed MCP Servers”下面顯示有“chrome-devtools (27 tools enabled)”、且末尾開關顯示綠色開啟狀態,便說明 chrome-devtools MCP 已經配置成功。

      Image 2 ?? Image 3

      (2)由于現在版本的 Cursor 在關閉后,Cursor 進程還會殘留在內存中(估計是bug),同時為避免內存中存在多個 Chrome 進程的相互干擾,所以下面在啟動 Chrome、Cursor 進程前,強制結束內存中的所有 Chrome、Cursor 進程。
      ??為了便于自動化快捷操作,可以編制 start-chrome-and-cursor-OK.vbs(文件內容附后)來完成先結束內存中的所有 Chrome、Cursor 進程,再啟動定制的 Chrome 便攜版進程、再啟動 Cursor 進程。
      ??注意:啟動的 "d:\WinUser.dat\Program Files\ChromePortable\Chrome-bin\chrome.exe" 為便攜版 Chrome 路徑,"d:\WinUser.dat\Program Files\ChromePortable\Data" 為指定的用戶 Data 目錄,讀者需按需替換。

      5. 使用 start-chrome-and-cursor-OK.vbs 實現需求

      ??接下來,創建一個項目目錄,比如:e:\CursorMcp\BrowerMcp01(讀者需按需替換),將 start-chrome-and-cursor-OK.vbs 文件拷貝到該目錄,雙擊 start-chrome-and-cursor-OK.vbs 便可以自動結束內存中的所有 Chrome、Cursor 進程,再啟動定制的 Chrome 便攜版進程、再啟動 Cursor 進程。
      ??用 Cursor 2.x 打開項目目錄,在 Chat 窗口中選擇 Agent 模式,模型選擇 Sonnet 4.5 即可,直接輸入下面的任務發送即可自動完成(視頻網址請按需替換):
      (1)使用 chrome-devtools-mcp 打開 https://www.bilibili.com/video/BV1fEsfzrEc7/?spm_id_from=333.1007.tianma.1-2-2.click&vd_source=7c7ae5cc1dbb2453e1eb43950a4264a3 (讀者需按需替換)
      (2)暫停視頻播放
      (3)查找并點擊該視頻頁面的所有“點擊查看”文本元素

      6. chrome-devtools MCP 查找“點擊查看”元素,并進行點擊

      ??下圖是 chrome-devtools MCP 查找到的第一個“點擊查看”元素(紅框標注):

      Image 2

      ??下圖是 chrome-devtools MCP 已經自動點擊查找到的“點擊查看”元素、展開評論(紅框標注),總共查找到并自動點擊3個“點擊查看”元素(紅框標注):

      Image 2

      7. 附:start-chrome-and-cursor-OK.vbs 文件內容

      ' start-chrome-and-cursor-OK.vbs
      Option Explicit
      
      ' 全局對象變量
      Dim objWMI, objShell, objFSO
      Dim chromePath, cursorPath, currentDir
      Dim maxWaitTime, waitInterval
      
      ' 配置參數
      maxWaitTime = 10000  ' 最大等待時間(毫秒)
      waitInterval = 200   ' 檢查間隔(毫秒)
      
      ' 創建必要對象
      Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
      Set objShell = CreateObject("WScript.Shell")
      Set objFSO = CreateObject("Scripting.FileSystemObject")
      
      ' 獲取當前腳本所在目錄
      currentDir = objFSO.GetParentFolderName(WScript.ScriptFullName)
      
      ' 便攜版 Chrome 路徑和啟動參數
      chromePath = "d:\WinUser.dat\Program Files\ChromePortable\Chrome-bin\chrome.exe"
      Dim chromeArgs
      ' 使用下劃線 _ 作為行繼續符(VBScript 不支持 CMD 的 ^ 符號)
      chromeArgs = "--user-data-dir=\"\"d:\WinUser.dat\Program Files\ChromePortable\Data\"\" " & _
                   "--disable-background-networking " & _
                   "--disable-features=CustomizeChromeSidePanel " & _
                   "--disable-hang-monitor " & _
                   "--disable-session-crashed-bubble " & _
                   "--hide-crash-restore-bubble " & _
                   "--disable-restore-session-state " & _
                   "--remote-debugging-port=9222"
      
      ' ============================================================================
      ' 步驟 1: 結束所有 Chrome 進程
      ' ============================================================================
      Call KillAllProcesses("chrome.exe")
      Call WaitForProcessesToTerminate("chrome.exe", maxWaitTime)
      
      ' ============================================================================
      ' 步驟 2: 結束所有 Cursor 進程
      ' ============================================================================
      Call KillAllProcesses("Cursor.exe")
      Call WaitForProcessesToTerminate("Cursor.exe", maxWaitTime)
      
      ' ============================================================================
      ' 步驟 3: 啟動便攜版 Chrome
      ' ============================================================================
      If Not objFSO.FileExists(chromePath) Then
          WScript.Quit 1
      End If
      objShell.Run """" & chromePath & """ " & chromeArgs, 1, False
      WScript.Sleep 3000
      
      ' ============================================================================
      ' 步驟 4: 驗證 Chrome CDP 連接(可選)
      ' ============================================================================
      Call VerifyChromeCDP()
      
      ' ============================================================================
      ' 步驟 5: 啟動 Cursor
      ' ============================================================================
      cursorPath = FindCursorPath()
      If cursorPath <> "" Then
          objShell.Run """" & cursorPath & """ """ & currentDir & """", 1, False
          WScript.Sleep 1000
      End If
      
      ' 清理資源
      Set objWMI = Nothing
      Set objShell = Nothing
      Set objFSO = Nothing
      
      WScript.Quit 0
      
      ' ============================================================================
      ' 函數: 結束指定名稱的所有進程
      ' 參數: processName - 進程名稱(如 "chrome.exe")
      ' 返回: 結束的進程數量
      ' ============================================================================
      Function KillAllProcesses(processName)
          Dim colProcessList, objItem
          Dim killedCount
          
          killedCount = 0
          Set colProcessList = objWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & processName & "'")
          
          If colProcessList.Count > 0 Then
              For Each objItem In colProcessList
                  On Error Resume Next
                  objItem.Terminate()
                  If Err.Number = 0 Then
                      killedCount = killedCount + 1
                  End If
                  On Error Goto 0
              Next
          End If
          
          Set colProcessList = Nothing
          KillAllProcesses = killedCount
      End Function
      
      ' ============================================================================
      ' 函數: 等待指定名稱的所有進程結束
      ' 參數: processName - 進程名稱(如 "chrome.exe")
      ' 參數: maxWaitMs - 最大等待時間(毫秒)
      ' ============================================================================
      Function WaitForProcessesToTerminate(processName, maxWaitMs)
          Dim elapsedTime, colProcessList
          
          elapsedTime = 0
          
          Do While elapsedTime < maxWaitMs
              Set colProcessList = objWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & processName & "'")
              
              If colProcessList.Count = 0 Then
                  Set colProcessList = Nothing
                  Exit Function
              End If
              
              Set colProcessList = Nothing
              WScript.Sleep waitInterval
              elapsedTime = elapsedTime + waitInterval
          Loop
      End Function
      
      ' ============================================================================
      ' 函數: 查找 Cursor 可執行文件路徑
      ' 返回: Cursor.exe 的完整路徑,未找到則返回空字符串
      ' ============================================================================
      Function FindCursorPath()
          Dim paths(4)
          Dim i, testPath
          
          ' 定義可能的 Cursor 安裝路徑
          paths(0) = objShell.ExpandEnvironmentStrings("%LOCALAPPDATA%") & "\Programs\cursor\Cursor.exe"
          paths(1) = objShell.ExpandEnvironmentStrings("%APPDATA%") & "\Local\Programs\cursor\Cursor.exe"
          paths(2) = "C:\Program Files\Cursor\Cursor.exe"
          paths(3) = objShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%") & "\Cursor\Cursor.exe"
          
          ' 嘗試從注冊表獲取路徑
          On Error Resume Next
          testPath = objShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Cursor\InstallLocation")
          If Err.Number = 0 And testPath <> "" Then
              testPath = testPath & "\Cursor.exe"
              If objFSO.FileExists(testPath) Then
                  FindCursorPath = testPath
                  Exit Function
              End If
          End If
          On Error Goto 0
          
          ' 檢查每個路徑
          For i = 0 To UBound(paths)
              If objFSO.FileExists(paths(i)) Then
                  FindCursorPath = paths(i)
                  Exit Function
              End If
          Next
          
          FindCursorPath = ""
      End Function
      
      ' ============================================================================
      ' 函數: 驗證 Chrome CDP 連接(靜默驗證)
      ' ============================================================================
      Function VerifyChromeCDP()
          Dim httpObj, url
          
          On Error Resume Next
          
          Set httpObj = CreateObject("MSXML2.XMLHTTP")
          url = "http://localhost:9222/json/version"
          
          httpObj.Open "GET", url, False
          httpObj.setTimeouts 2000, 2000, 2000, 2000
          httpObj.Send
          
          Set httpObj = Nothing
          On Error Goto 0
      End Function
      

      posted on 2025-11-04 23:33  patton88  閱讀(21)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 久久综合国产色美利坚| 国产四虎永久免费观看| 久久精品无码精品免费专区| 和艳妇在厨房好爽在线观看| 最新中文乱码字字幕在线| 久久亚洲精品无码播放| 国产 麻豆 日韩 欧美 久久| 亚洲人成网线在线播放VA| 玛纳斯县| 日本一区二区三本视频在线观看| 91青青草视频在线观看| caoporn成人免费公开| 洱源县| 暖暖 免费 高清 日本 在线观看5| 无码电影在线观看一区二区三区| 欧美亚洲另类自拍偷在线拍| 天堂中文8资源在线8| 国产成人啪精品视频免费网| 人妻伦理在线一二三区| 国产成人精品亚洲午夜| 国产精品久久国产精麻豆99网站 | 亚洲永久一区二区三区在线| 亚洲国产精品高清线久久| 亚洲欧美综合中文| 国产亚洲精品第一综合另类无码无遮挡又大又爽又黄的视频 | 欧美日本中文| 国产视频最新| 精品一区二区不卡免费| 最新精品露脸国产在线| 国产人妻精品午夜福利免费| 国产久免费热视频在线观看| 亚洲精品美女一区二区| 国产一区二区不卡91| 日韩av无码一区二区三区| 亚洲熟妇色xxxxx亚洲| 成人欧美日韩一区二区三区| 亚洲人亚洲人成电影网站色| 亚洲国产精品一区二区第一页| 内射无套内射国产精品视频| 99在线精品国自产拍中文字幕| 亚洲一区二区av观看|