项目文件夹

文件
2026-07-18 21:29:09 -07:00

40 行
1.4 KiB
Markdown

# Network Requests
`network_events()` reads the active tab's dedicated Network event ring without
consuming it. `wait_for_network_idle()` uses the same ring, so waiting no longer
destroys evidence needed afterward.
Capture a cursor before an action, then inspect only new events:
```python
cursor = network_events()["next_seq"]
click_backend_node(button_backend_id)
wait_for_network_idle(timeout=15)
batch = network_events(since=cursor)
for event in batch["events"]:
if event["method"] in {"Network.requestWillBeSent", "Network.responseReceived"}:
print(event)
```
The result includes `next_seq`, `dropped`, and `truncated`. Increase `limit` for
targeted debugging; keep printed output bounded. Raw CDP remains available for
request bodies and response bodies.
For public stateless data, prefer the runtime's native retrieval tool. Use an
in-renderer fetch only for data that requires the current browser origin,
cookies, or authenticated session:
```python
result = js("""
(async () => {
const response = await fetch('/api/data', {credentials: 'include'});
return {status: response.status, type: response.headers.get('content-type'), text: (await response.text()).slice(0, 5000)};
})()
""")
print(result)
```
Use `method`, `headers`, and `body` in the fetch options for POST downloads or
API calls. Save large or binary results as artifacts in bounded chunks instead
of printing them into the model context.