Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问许可证需确认审计异常

automating-chrome自动化镀铬

Agent Skill

automating-chrome 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

212

周安装

9

GitHub Stars

28

下载量

74
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:automating-chrome(自动化镀铬)
来源仓库:https://github.com/spillwavesolutions/automating-mac-apps-plugin
仓库路径:skills/automating-chrome
安装命令:
npx skills add https://github.com/spillwavesolutions/automating-mac-apps-plugin --skill automating-chrome
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/spillwavesolutions/automating-mac-apps-plugin --skill automating-chrome

简介

用于查找、检索和筛选 Chrome 浏览器自动化相关信息,适合快速定位候选结果。

  • 适用于 Google Chrome 和 Chromium 变体的 UI 操作与 JavaScript 注入。
  • 使用时需注意 JXA/AppleScript 已过时,推荐使用 Selenium 或 Puppeteer。
  • 安装方式:通过 npx skills add 从 GitHub 仓库安装,支持 Codex、Claude、Cursor、Gemini CLI。
  • 建议结合 automating-mac-apps 获取权限指导,避免绕过现代安全限制。

SKILL.md

Automating Chrome / Chromium Browsers (JXA-first, AppleScript discovery)

Technology Status

JXA/AppleScript browser automation is legacy. JavaScript injection is disabled by default in modern Chrome. Modern alternatives: Selenium/ChromeDriver, Puppeteer, PyXA.

Related Skills: web-browser-automation, automating-mac-apps

PyXA Installation: See automating-mac-apps skill (PyXA Installation section).

Contents

Scope

  • Primary target: Google Chrome (bundle ID: com.google.Chrome).
  • Chromium-based variants (Brave: com.brave.Browser, Edge: com.microsoft.edgemac, Arc: company.thebrowser.Browser) often expose similar dictionaries but may differ by bundle name and permissions.
  • Always verify dictionary availability in Script Editor for target browser before automation.

Security Note: JavaScript injection via AppleScript is disabled by default in Chrome. Enable via: View → Developer → Allow JavaScript from Apple Events (not recommended for production use).

Core framing

  • AppleScript dictionaries define the automation surface.
  • JXA provides logic and data handling.
  • execute() runs JavaScript in page context but doesn't reliably return values—use tunneling patterns (save to clipboard/localStorage) for data extraction instead.

⚠️ Security Warning: The tunneling approach (clipboard/localStorage) can expose sensitive data. Use modern APIs for production automation.

  • Tunneling Patterns Explained: Since execute() doesn't return JavaScript results directly, work around this by having your injected script save data to accessible locations like the system clipboard (navigator.clipboard.writeText()) or localStorage (localStorage.setItem()). Then retrieve the data in your JXA script using system commands or by reading back from localStorage via another execute() call.

Workflow (default)

  1. Discover dictionary terms in Script Editor (Chrome or target browser).
  2. Prototype minimal AppleScript commands in target browser.
  3. Port to JXA and add defensive checks:

- Wrap operations in try/catch blocks - Check browser process status: chrome.running() - Verify window/tab indices exist before access - Handle permission dialogs programmatically when possible

  1. Use batch URL reads and reverse-order deletes for tab operations.
  2. Use tunneling patterns for DOM data extraction.
  3. Validate results: Log tab counts, URLs, or extracted data to confirm operations succeeded.

Quick Examples

Open new tab and navigate:

const chrome = Application('Google Chrome');
chrome.windows[0].tabs.push(chrome.Tab());
chrome.windows[0].tabs[chrome.windows[0].tabs.length - 1].url = 'https://example.com';

Execute JavaScript in current tab:

const result = chrome.execute({javascript: 'document.title'});
// Note: execute() runs JS but doesn't reliably return values

Batch close tabs (reverse order):

const tabs = chrome.windows[0].tabs;
for (let i = tabs.length - 1; i >= 0; i--) {
  if (tabs[i].url().includes('unwanted')) {
    tabs[i].close();
  }
}

Extract page data via tunneling:

// Inject script to save title to localStorage
chrome.execute({javascript: 'localStorage.setItem("pageTitle", document.title)'});
// Retrieve via another execute call
chrome.execute({javascript: 'console.log(localStorage.getItem("pageTitle"))'});

Check browser permissions:

try {
  const chrome = Application('Google Chrome');
  chrome.windows[0].tabs[0].url(); // Test access
  console.log('Permissions OK');
} catch (error) {
  console.log('Permission error:', error.message);
}

Modern Alternatives

For production Chrome automation, see the web-browser-automation skill for comprehensive guides covering:

  • PyXA: macOS-native Chrome automation with full integration
  • Selenium: Cross-platform automation with automatic ChromeDriver management
  • Puppeteer: Node.js automation with bundled Chrome
  • Multi-browser workflows: Chrome, Edge, Brave, and Arc coordination

Quick PyXA Example (see web-browser-automation skill for details):

import PyXA

# Launch Chrome and navigate
chrome = PyXA.Application("Google Chrome")
chrome.activate()
chrome.open_location("https://example.com")

# Get current tab info
current_tab = chrome.current_tab()
print(f"Page title: {current_tab.title()}")
print(f"Current URL: {current_tab.url()}")

PyObjC with Selenium (Cross-Platform with macOS Integration)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from AppKit import NSWorkspace

# Configure Chrome options
options = Options()
options.add_argument("--remote-debugging-port=9222")
options.add_argument('--headless=new')  # Modern headless mode

# Launch Chrome with Selenium (automatic ChromeDriver management)
driver = webdriver.Chrome(options=options)
driver.get('https://example.com')

# macOS integration via PyObjC
workspace = NSWorkspace.sharedWorkspace()
frontmost_app = workspace.frontmostApplication()
print(f"Frontmost app: {frontmost_app.localizedName()}")

print(f"Page title: {driver.title}")
driver.quit()

Selenium with ChromeDriver (Recommended for Cross-Platform)

# Install Selenium (latest: 4.38.0)
pip install selenium

# ChromeDriver is automatically managed by Selenium Manager (v4.11+)
# No manual download needed - compatible version downloaded automatically

# Basic Python example
from selenium import webdriver

driver = webdriver.Chrome()  # Automatic ChromeDriver management
driver.get('https://example.com')
print(driver.title)
driver.quit()

Advanced Configuration:

from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless=new')  # Modern headless mode (required)
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome(options=options)
driver.get('https://example.com')
print(f"Page title: {driver.title}")
driver.quit()

Manual ChromeDriver Setup (for specific versions):

from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

# Download from https://googlechromelabs.github.io/chromedriver/
# Match major version with your Chrome installation
service = Service(executable_path='/path/to/chromedriver')
options = Options()
driver = webdriver.Chrome(service=service, options=options)

Note: Selenium 4.11+ automatically downloads compatible ChromeDriver. Manual setup only needed for specific version requirements or CI/CD environments.

Puppeteer (Recommended for Node.js)

# Install Puppeteer (latest: 24.35.0)
npm install puppeteer
# Bundles compatible Chrome automatically
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: 'new'  // Modern headless mode (required in v24+)
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  const title = await page.title();
  console.log(title);
  await browser.close();
})();

Advanced Puppeteer Configuration:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: 'new',
    args: ['--no-sandbox', '--disable-dev-shm-usage']
  });
  const page = await browser.newPage();

  // Set viewport
  await page.setViewport({ width: 1280, height: 720 });

  await page.goto('https://example.com');

  // Wait for element and interact
  await page.waitForSelector('h1');
  const title = await page.title();

  console.log(`Page title: ${title}`);
  await browser.close();
})();

Chrome DevTools Protocol (Advanced)

// WebSocket connection to CDP
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:9222/devtools/page/{page-id}');

// Send CDP commands
ws.send(JSON.stringify({
  id: 1,
  method: 'Runtime.evaluate',
  params: { expression: 'document.title' }
}));

Setup Requirements:

  • ChromeDriver: Download from Chrome for Testing
  • Puppeteer: npm install puppeteer
  • CDP: Launch Chrome with --remote-debugging-port=9222

Validation Checklist

  • Browser automation permissions granted (System Settings > Privacy & Security)
  • Chrome running and accessible: chrome.running() returns true
  • JavaScript injection enabled (View > Developer > Allow JavaScript from Apple Events)
  • Tab/window indices verified before access
  • Error handling wraps all operations
  • Data extraction via tunneling confirmed
  • Results logged and validated

When Not to Use

  • Cross-platform browser automation (use Selenium or Playwright)
  • Production web scraping or testing (use ChromeDriver/Puppeteer)
  • JavaScript injection disabled (default in modern Chrome)
  • Non-macOS platforms
  • Heavy DOM manipulation (use Puppeteer/Playwright)

What to load

  • Chrome JXA basics: automating-chrome/references/chrome-basics.md
  • Recipes (tabs, URLs, windows): automating-chrome/references/chrome-recipes.md
  • Advanced patterns (execute tunneling, incognito): automating-chrome/references/chrome-advanced.md
  • Dictionary translation table: automating-chrome/references/chrome-dictionary.md
  • Browser name mapping: automating-chrome/references/chromium-browser-names.md
  • Form automation basics: automating-chrome/references/chrome-form-automation.md

Related Skills for Modern Chrome Automation:

  • web-browser-automation: Complete guide for Chrome, Edge, Brave, and Arc automation
  • automating-mac-apps: PyXA fundamentals and conversion guides

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.11%
按下载量换算25

Claude

33.93%
按下载量换算25

Cursor

17.39%
按下载量换算13

Gemini CLI

10.32%
按下载量换算8

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills