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.
- package/README.md +164 -158
- package/dist/main.mjs +16252 -149
- package/dist/main.mjs.map +1 -1
- 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
|