enbu 0.1.0 → 0.2.0

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.
Files changed (4) hide show
  1. package/README.md +164 -158
  2. package/dist/main.mjs +16252 -149
  3. package/dist/main.mjs.map +1 -1
  4. package/package.json +11 -12
package/README.md CHANGED
@@ -67,6 +67,163 @@ npx enbu
67
67
  npx enbu .abflow/login.enbu.yaml
68
68
  ```
69
69
 
70
+ ## コマンドリファレンス
71
+
72
+ ### ページを開く
73
+
74
+ ```yaml
75
+ steps:
76
+ - open: https://example.com
77
+ ```
78
+
79
+ ### クリック
80
+
81
+ ```yaml
82
+ steps:
83
+ # セマンティックセレクタ(テキスト、ラベル、ARIAロール等)
84
+ - click: "ログイン"
85
+
86
+ # CSSセレクタ
87
+ - click:
88
+ selector: "#submit-button"
89
+ ```
90
+
91
+ ### テキスト入力
92
+
93
+ ```yaml
94
+ steps:
95
+ - type:
96
+ selector: "ユーザー名"
97
+ text: "山田太郎"
98
+ ```
99
+
100
+ ### アサーション
101
+
102
+ ```yaml
103
+ steps:
104
+ # 要素が表示されていることを確認
105
+ - assertVisible: "ログイン成功"
106
+
107
+ # 要素が表示されていないことを確認
108
+ - assertNotVisible: "エラー"
109
+ ```
110
+
111
+ ### スクリーンショット
112
+
113
+ ```yaml
114
+ steps:
115
+ - screenshot: ./screenshots/result.png
116
+ ```
117
+
118
+ ### スナップショット(デバッグ用)
119
+
120
+ ```yaml
121
+ steps:
122
+ - snapshot
123
+ ```
124
+
125
+ 現在のページのアクセシビリティツリーを取得します。デバッグ時に要素の確認に使用します。
126
+
127
+ ### JavaScript実行
128
+
129
+ ```yaml
130
+ steps:
131
+ - eval: "document.title"
132
+
133
+ # 複数行
134
+ - eval: |
135
+ const element = document.querySelector('#result');
136
+ return element.textContent;
137
+ ```
138
+
139
+ ## 環境変数
140
+
141
+ フロー内で環境変数を使用できます:
142
+
143
+ ```yaml
144
+ steps:
145
+ - type:
146
+ selector: "パスワード"
147
+ text: ${PASSWORD}
148
+ ```
149
+
150
+ ### 環境変数の指定方法
151
+
152
+ #### CLI引数で指定
153
+
154
+ ```bash
155
+ npx enbu --env PASSWORD=secret123
156
+ ```
157
+
158
+ #### YAML内で定義
159
+
160
+ `.abflow/login.enbu.yaml`:
161
+ ```yaml
162
+ env:
163
+ BASE_URL: https://staging.example.com
164
+ steps:
165
+ - open: ${BASE_URL}/login
166
+ ```
167
+
168
+ ## CLI オプション
169
+
170
+ ```bash
171
+ npx enbu [options] [flow-files...]
172
+
173
+ オプション:
174
+ --headed ブラウザを表示して実行(デフォルト: ヘッドレス)
175
+ --env KEY=VALUE 環境変数を設定
176
+ --timeout <ms> デフォルトタイムアウト(デフォルト: 30000)
177
+ --screenshot 失敗時にスクリーンショットを保存
178
+ -v, --verbose 詳細なログを出力
179
+ -h, --help ヘルプを表示
180
+ --version バージョンを表示
181
+ ```
182
+
183
+ ## ディレクトリ構成
184
+
185
+ ```
186
+ your-project/
187
+ ├── .abflow/
188
+ │ ├── login.enbu.yaml
189
+ │ ├── checkout.enbu.yaml
190
+ │ └── shared/
191
+ │ └── auth.enbu.yaml
192
+ └── package.json
193
+ ```
194
+
195
+ ## CI/CD統合
196
+
197
+ ### GitHub Actions
198
+
199
+ ```yaml
200
+ name: E2E Tests
201
+
202
+ on: [push, pull_request]
203
+
204
+ jobs:
205
+ test:
206
+ runs-on: ubuntu-latest
207
+ steps:
208
+ - uses: actions/checkout@v4
209
+
210
+ - name: Setup Node.js
211
+ uses: actions/setup-node@v4
212
+ with:
213
+ node-version: '20'
214
+
215
+ - name: Install agent-browser
216
+ run: npm install -g agent-browser
217
+
218
+ - name: Install browsers
219
+ run: agent-browser install --with-deps
220
+
221
+ - name: Run E2E tests
222
+ run: npx enbu
223
+ env:
224
+ PASSWORD: ${{ secrets.TEST_PASSWORD }}
225
+ ```
226
+
70
227
  ## agent-browser コマンド対応表
71
228
 
72
229
  本ツールは [agent-browser](https://github.com/vercel-labs/agent-browser) のコマンドをYAMLから利用できます。以下は対応状況です。
@@ -123,13 +280,13 @@ npx enbu .abflow/login.enbu.yaml
123
280
 
124
281
  | agent-browser | 対応 | YAML記法 |
125
282
  |---------------|:----:|----------|
126
- | `find role <role> <action> [value]` | | セレクタ文字列として利用可能 |
127
- | `find text <text> <action>` | | セレクタ文字列として利用可能 |
128
- | `find label <label> <action> [value]` | | セレクタ文字列として利用可能 |
129
- | `find placeholder <placeholder> <action> [value]` | | セレクタ文字列として利用可能 |
130
- | `find alt <text> <action>` | | セレクタ文字列として利用可能 |
131
- | `find title <text> <action>` | | セレクタ文字列として利用可能 |
132
- | `find testid <id> <action> [value]` | | セレクタ文字列として利用可能 |
283
+ | `find role <role> <action> [value]` | | - |
284
+ | `find text <text> <action>` | | - |
285
+ | `find label <label> <action> [value]` | | - |
286
+ | `find placeholder <placeholder> <action> [value]` | | - |
287
+ | `find alt <text> <action>` | | - |
288
+ | `find title <text> <action>` | | - |
289
+ | `find testid <id> <action> [value]` | | - |
133
290
  | `find first <selector> <action> [value]` | ❌ | - |
134
291
  | `find last <selector> <action> [value]` | ❌ | - |
135
292
  | `find nth <n> <selector> <action> [value]` | ❌ | - |
@@ -245,157 +402,6 @@ npx enbu .abflow/login.enbu.yaml
245
402
  |----------|----------|
246
403
  | assertNotVisible | `- assertNotVisible: <selector>` |
247
404
 
248
- ## コマンドリファレンス
249
-
250
- ### ページを開く
251
-
252
- ```yaml
253
- steps:
254
- - open: https://example.com
255
- ```
256
-
257
- ### クリック
258
-
259
- ```yaml
260
- steps:
261
- # セマンティックセレクタ(テキスト、ラベル、ARIAロール等)
262
- - click: "ログイン"
263
-
264
- # CSSセレクタ
265
- - click:
266
- selector: "#submit-button"
267
- ```
268
-
269
- ### テキスト入力
270
-
271
- ```yaml
272
- steps:
273
- - type:
274
- selector: "ユーザー名"
275
- text: "山田太郎"
276
- ```
277
-
278
- ### アサーション
279
-
280
- ```yaml
281
- steps:
282
- # 要素が表示されていることを確認
283
- - assertVisible: "ログイン成功"
284
-
285
- # 要素が表示されていないことを確認
286
- - assertNotVisible: "エラー"
287
- ```
288
-
289
- ### スクリーンショット
290
-
291
- ```yaml
292
- steps:
293
- - screenshot: ./screenshots/result.png
294
- ```
295
-
296
- ### スナップショット(デバッグ用)
297
-
298
- ```yaml
299
- steps:
300
- - snapshot
301
- ```
302
-
303
- 現在のページのアクセシビリティツリーを取得します。デバッグ時に要素の確認に使用します。
304
-
305
- ### JavaScript実行
306
-
307
- ```yaml
308
- steps:
309
- - eval: "document.title"
310
-
311
- # 複数行
312
- - eval: |
313
- const element = document.querySelector('#result');
314
- return element.textContent;
315
- ```
316
-
317
- ## 環境変数
318
-
319
- フロー内で環境変数を使用できます:
320
-
321
- ```yaml
322
- steps:
323
- - type:
324
- selector: "パスワード"
325
- text: ${PASSWORD}
326
- ```
327
-
328
- ### 環境変数の指定方法
329
-
330
- #### CLI引数で指定
331
-
332
- ```bash
333
- npx enbu --env PASSWORD=secret123
334
- ```
335
-
336
- #### YAML内で定義
337
-
338
- `.abflow/login.enbu.yaml`:
339
- ```yaml
340
- env:
341
- BASE_URL: https://staging.example.com
342
- steps:
343
- - open: ${BASE_URL}/login
344
- ```
345
-
346
- ## CLI オプション
347
-
348
- ```bash
349
- npx enbu [options] [flow-files...]
350
-
351
- オプション:
352
- --headed ブラウザを表示して実行(デフォルト: ヘッドレス)
353
- --env KEY=VALUE 環境変数を設定
354
- --timeout <ms> デフォルトタイムアウト(デフォルト: 30000)
355
- --screenshot 失敗時にスクリーンショットを保存
356
- -v, --verbose 詳細なログを出力
357
- -h, --help ヘルプを表示
358
- --version バージョンを表示
359
- ```
360
-
361
- ## ディレクトリ構成
362
-
363
- ```
364
- your-project/
365
- ├── .abflow/
366
- │ ├── login.enbu.yaml
367
- │ ├── checkout.enbu.yaml
368
- │ └── shared/
369
- │ └── auth.enbu.yaml
370
- └── package.json
371
- ```
372
-
373
- ## CI/CD統合
374
-
375
- ### GitHub Actions
376
-
377
- ```yaml
378
- name: E2E Tests
379
-
380
- on: [push, pull_request]
381
-
382
- jobs:
383
- test:
384
- runs-on: ubuntu-latest
385
- steps:
386
- - uses: actions/checkout@v4
387
-
388
- - name: Setup Node.js
389
- uses: actions/setup-node@v4
390
- with:
391
- node-version: '20'
392
-
393
- - name: Run E2E tests
394
- run: npx enbu
395
- env:
396
- PASSWORD: ${{ secrets.TEST_PASSWORD }}
397
- ```
398
-
399
405
  ## ライセンス
400
406
 
401
407
  MIT