Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器clawhub未标认证来源可访问clear审计提醒

page-js-operation-en页面 js 操作 en

Agent Skill

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

总安装

6,732

周安装

275

GitHub Stars

公开资料未说明

下载量

2,178
OpenClaw

安装说明

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

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:page-js-operation-en(页面 js 操作 en)
来源仓库:https://github.com/tangjing/page-js-operation-en
安装命令:
openclaw skills install page-js-operation-en
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

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

ClawHubOpenClaw
openclaw skills install page-js-operation-en

简介

通过CDP和Page JS扩展操作网页元素,节省95% Token(仅用于UI自动化测试,不适用于网页浏览工具)

SKILL.md

name
page_js_operation
description
Operate web page elements via CDP and Page JS Extension, save 95% Token (for UI automation testing ONLY, NOT a web browsing tool)
tools

Page JS CDP Web Operation Skill

⚠️ Important Notice

This Skill is designed EXCLUSIVELY for browser automation testing scenarios.

This is NOT a tool for daily website browsing or general web access.

🎯 Purpose & Scope

✅ Designed for:

  • Automation testing environments (CI/CD pipelines)
  • UI test script development and validation
  • Page function verification during development
  • Automated regression testing
  • Web scraping of PUBLIC information only

❌ NOT Designed for:

  • ❌ Daily website browsing
  • ❌ Personal web automation assistant
  • ❌ Handling personal accounts or credentials
  • ❌ Automating personal workflows on websites
  • ❌ Any production use involving real user data

🔒 Privacy Field Policy

Strict Rules for Sensitive Fields (password, hidden, file):

ActionAllowed?Condition
Read valueNEVERExtension code skips these fields during collection
Write value⚠️ User instruction ONLYRequires EXPLICIT user command, never auto-collected

Technical Guarantee:

// In collectAllElements() - sensitive fields are NEVER collected
const sensitiveTypes = ['password', 'hidden', 'file'];
if (element.tagName === 'INPUT' && sensitiveTypes.includes(element.type)) {
  return;  // Skipped - not indexed, not searchable
}

What this means:

  • Password/hidden/file fields cannot be discovered via searchElementsByKey()
  • They can only be operated via direct DOM commands with explicit user instruction
  • Example: document.querySelector('input[type="password"]').value = 'xxx' requires user-provided selector
  • The extension never proactively reads these fields

Dependencies

This Skill must be used with the following components:

  1. Page JS Extension - Chrome Extension (manual installation required)

- GitHub: https://github.com/TangJing/openclaw_access_web_page_js - Please download and review source code before installation - Installation: chrome://extensions/ → Developer mode → Load unpacked

  1. CDP Environment - Chrome DevTools Protocol access

- Local: http://127.0.0.1:9222 - Or automation frameworks like Puppeteer/Playwright


Workflow

  1. Check Extension → Verify ElementCollector is injected (first time only)
  2. Get Element Index → Call exportData() to get element key list (non-sensitive)
  3. AI Analysis → Identify target elements by keys (buttons, inputs, etc.)
  4. Execute Operation → Perform click/input operations via CDP

⚠️ Security Restrictions

Prohibited Page Types

DO NOT use this Skill on:

  • 🔒 Banking/financial websites
  • 🔒 Login/registration pages (involving passwords)
  • 🔒 Payment pages
  • 🔒 Healthcare/medical websites
  • 🔒 Government/ID-related websites
  • 🔒 Any pages containing personal sensitive information

Prohibited Data Types

DO NOT read or modify:

  • Password input fields (type="password")
  • Credit card number inputs
  • National ID number inputs
  • Other sensitive personal data fields

Recommended Operation Scenarios

This Skill is suitable for:

  • ✅ Web operations with public information
  • ✅ Automation testing environments
  • ✅ Non-sensitive form filling (e.g., search boxes)
  • ✅ Button click operations
  • ✅ Dropdown selection operations

Operation Templates

Check Extension Availability (First Launch)

typeof ElementCollector !== 'undefined'
// Returns true if extension is installed

Get Page Element Index (Non-sensitive)

ElementCollector.exportData()
// Returns: { elements: [...keys], keywords: [...], elementCount: N }
// Note: Only returns element key list, not actual DOM content

Click Button

const results = ElementCollector.searchElementsByKey('{button-keyword}');
const element = Object.values(results)[0];
if (element) element.click();

Fill Regular Input (Non-sensitive)

const inputs = ElementCollector.searchElementsByKey('{search-box/input}');
const input = Object.values(inputs)[0];
if (input) {
  input.value = '{value}';
  input.dispatchEvent(new Event('input', { bubbles: true }));
}

Select Dropdown Option

const selects = ElementCollector.searchElementsByKey('{selector-keyword}');
const select = Object.values(selects)[0];
if (select) {
  select.value = '{option-value}';
  select.dispatchEvent(new Event('change', { bubbles: true }));
}

CDP Command Reference

OperationCDP Runtime.evaluate Expression
Check extensiontypeof ElementCollector !== 'undefined'
Get indexElementCollector.exportData()
ClickElementCollector.searchElementsByKey('btn')[0].click()
FillElementCollector.searchElementsByKey('input')[0].value = 'text'
SelectElementCollector.searchElementsByKey('select')[0].value = 'option'

Common Keywords

OperationRecommended Keywords
Search'搜索', 'search'
Submit'提交', 'submit'
Cancel'取消', 'cancel'
Confirm'确定', 'confirm'
Delete'删除', 'delete'
Edit'编辑', 'edit'
Save'保存', 'save'

⚠️ Privacy & Data Flow

Data Flow

Browser DOM → ElementCollector (Memory Index) → CDP → Local AI Agent
                     ↑
              (Key list only, no sensitive content)

Privacy Notice

  1. Extension Level:

- ✅ Page JS Extension runs entirely in browser locally - ✅ Does not proactively send data to external servers - ✅ Data stored in memory, cleared when page closes

  1. Agent Level:

- ⚠️ AI Agent may send element data to LLM services - ⚠️ Element keys may contain page text content (button labels, input labels) - ⚠️ Ensure your AI Agent configuration meets privacy requirements

  1. User Responsibility:

- ⚠️ Users must review extension source code themselves - ⚠️ Users must ensure AI Agent won't send sensitive data to untrusted services - ⚠️ Users must avoid using this Skill on sensitive pages

Data Scope

Data TypeCollectedOperableDescription
Element id✅ Yes-For indexing
Element class✅ Yes-For indexing
Element title✅ Yes-For indexing
Element innerText✅ Yes-For indexing (max 100 chars)
Regular inputs✅ Yes✅ Read/WriteSearchable, fillable, readable
Password fieldsNot collected⚠️ Write via explicit user command ONLYNever indexed, never readable, can only write with explicit user DOM command
Hidden fieldsNot collected⚠️ Write via explicit user command ONLYNever indexed, never readable, can only write with explicit user DOM command
File uploadsNot collected⚠️ Write via explicit user command ONLYNever indexed, never readable, can only write with explicit user DOM command
Cookie/Storage❌ No❌ InaccessibleExtension has no such permission

Key Points:

  1. Sensitive fields are NEVER collected - They don't appear in exportData() results
  2. Sensitive fields are NEVER readable - No API exists to read their values
  3. Writing requires explicit user command - User must provide exact DOM selector
  4. This extension does NOT auto-fill sensitive fields - No credential handling

Technical Implementation:

// Automatically skip sensitive fields in collectAllElements()
const sensitiveTypes = ['password', 'hidden', 'file'];
if (element.tagName === 'INPUT' && sensitiveTypes.includes(element.type)) {
  return;  // Not collected to index, cannot search via searchElementsByKey
}

Note: Sensitive fields are not indexed but can still be operated via native DOM API with explicit user command (e.g., document.querySelector('input[type="password"]').value = 'xxx'). This extension does not proactively read values from these fields.


Installation Steps

Step 1: Install Page JS Extension

# 1. Download source code
git clone https://github.com/TangJing/openclaw_access_web_page_js.git
cd openclaw_access_web_page_js

# 2. Review source code (recommended)
# Check for:
# - Network request code
# - Data exfiltration logic
# - manifest.json permissions

# 3. Install extension
# Open chrome://extensions/
# Enable "Developer mode"
# Click "Load unpacked", select project directory

Step 2: Install OpenClaw Skill

# 1. Create Skill directory
mkdir -p ~/.openclaw/workspace/skills/page-js-operation

# 2. Save this SKILL.md to the directory
# Path: ~/.openclaw/workspace/skills/page-js-operation/SKILL.md

# 3. Refresh Skills
openclaw agent --message "refresh skills"

Usage Examples

Safe Scenario: Search Operation

# On search engine page
openclaw agent --message "use page_js_operation to fill search box with 'keyword'"
openclaw agent --message "use page_js_operation to click search button"

Safe Scenario: Navigation Operation

# On content page
openclaw agent --message "use page_js_operation to click next page button"
openclaw agent --message "use page_js_operation to select category from dropdown"

❌ Prohibited Scenario: Login Operation

# DO NOT use on login pages
# openclaw agent --message "fill username and password and click login"
# Reason: Involves password fields

Security Best Practices

  1. Use Dedicated Browser Profile

- Create separate Chrome user profile for automation testing - Do not save any real account credentials in test profile

  1. Limit Accessible Domains

- Restrict accessible domains in extension settings - Only allow test environments or public websites

  1. User Confirmation Mechanism

- Require user confirmation before sensitive operations - E.g., form submissions, deletions

  1. Regular Review

- Periodically review extension code for updates - Check Skill execution logs


Technical Notes

ElementCollector Working Principle

// Collection phase
elementMap = Map<key, Element>  // key → DOM reference
keywordMap = Map<keyword, Set<keys>>  // keyword → key set

// key format: id|class|title|innerText
// Example: "login-btn|btn primary||Login"

Why Token Savings

  • Traditional: Send complete HTML (5000-20000 tokens)
  • This Extension: Send element key list only (100-500 tokens)
  • Savings: ~95%+

Disclaimer

By using this Skill, you agree:

  1. You have reviewed and trust the Page JS Extension source code
  2. You understand this Skill is for automation testing ONLY, NOT for daily web browsing
  3. You understand AI Agent may send element data to LLM services
  4. You will not use this Skill on pages involving sensitive information
  5. You understand sensitive fields (password/hidden/file) are NEVER collected or readable
  6. You understand writing to sensitive fields requires explicit user command
  7. You assume all risks of using this Skill
  8. The Skill author is not liable for any data breaches or losses

Intended Use: This Skill is designed exclusively for automated UI testing in development and CI/CD environments. It is NOT a general-purpose web automation tool for personal use.


Links

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

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

04

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

补充不同宿主或平台的使用分布数据

能力 5

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

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

平台分布

OpenClaw

98.12%
按下载量换算2,137

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

通过

权限和风险

操作浏览器

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

安装前确认

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

来源信息

继续浏览同类 Skills