ワンクリックで
browser
Control a browser programmatically. Use for integration testing, manual validation, and experimentation.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Control a browser programmatically. Use for integration testing, manual validation, and experimentation.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Evaluate Clojure code via nREPL using clj-nrepl-eval. Always load this skill
Style components with daisy-ui. Use any time styled html components are used.
Repair Clojure reader syntax errors caused by unbalanced delimiters ((), [], {}) to fix errors like "EOF while reading", "Unexpected EOF", "Unmatched delimiter", or "Unbalanced delimiter".
Datastar framework guidance for adding data-* attributes, frontend actions, reactive signals, and backend SSE/SDK usage (including Clojure). Use when modifying HTML/Hiccup with Datastar attributes, handling Datastar requests, patching elements/signals, or tracing signal updates.
See what the program is doing with logs. Use when using the development http server or to see the value of log or trace statements
| name | browser |
| description | Control a browser programmatically. Use for integration testing, manual validation, and experimentation. |
Control a browser with etaoin, a clojure library, using Clojure.
Always start browser sessions with e/with-chrome-headless so WebDriver and Chromium processes are cleaned up automatically.
Do not create a top-level (def driver ...) in examples.
An example at the REPL:
(require '[etaoin.api :as e]
'[etaoin.keys :as k]
'[clojure.string :as str])
(e/with-chrome-headless driver
(e/driver-type driver) ;; => :chrome
(e/go driver "http://localhost:3000/demo/datatable")
;; make sure we aren't using a large screen layout
(e/set-window-size driver {:width 1280 :height 800})
;; wait for the search input to load
(e/wait-visible driver [{:tag :input :name :search}]))
Use css selectors or xpath to select elements.
{:css "input#uname[name='username']"}
{:xpath ".//input[@id='uname']"}
For example:
(e/fill driver
{:css "input#uname[name='username']"}
" CSS selector")
Use e/wait-visible to wait for elements to be visible. e/wait-has-text and e/wait-has-text-everywhere can be used to wait until text is visible on the page.
e/wait should be used only when the other wait options don't make sense.
An element may not be visible on the page. Use e/scroll
Use js-execute to evaluate a Javascript code in the browser:
(e/js-execute driver "alert('Hello from Etaoin!')")
(e/dismiss-alert driver)
The following functions are useful for interacting with the page, filling forms, etc:
e/fille/fill-multie/fill-humane/fill-human-multie/clicke/double-clickTake full screen screenshots with e/screenshot
(e/screenshot driver "target/etaoin-play/screens1/page.png")
Screenshot an element:
(e/screenshot-element driver {:tag :form :class :formy} "target/etaoin-play/screens3/form-element.png")