Tích hợp
Python SDK
Giao tác vụ cho điện thoại và viết script điều khiển bằng Python chỉ trong vài dòng.
Cài đặt
Terminal
pip install clousd export CLOUSD_API_KEY=cl_live_…
Một tác vụ
Python
from clousd import Clousd c = Clousd() # key from CLOUSD_API_KEY run = c.run("Open Settings and tell me the Android version", device="c3f9a41d2", wait=True) print(run.status, run.answer) # completed Android 15 # the same task on several phones at once run = c.run("Open the app and tell me what the first screen shows", devices=["c3f9a41d2", "c81d07e5a"], wait=True) for r in run.children: print(r.device, r.status, r.answer)
Theo dõi và trả lời
Python
login = c.credentials("com.example.shop")[0] # names only; the values never leave Clousd
run = c.run("Sign in and tell me how many orders there are", device="c3f9a41d2", credentials=[login], mode="ask",
output_schema={"type": "object", "properties": {"orders": {"type": "integer"}}})
for ev in run.events(): # live: status, plan, step, card, answer, end
if ev["event"] == "step":
print(ev["data"]["n"], ev["data"]["tool"], ev["data"]["result"])
if ev["event"] == "card":
run.reply(allow=True) # or run.reply("the first one")
print(run.refresh().structured_output) # {"orders": 3}| Tác vụ | Đăng nhập, lịch chạy, webhook |
|---|---|
c.run(task, device=… / devices=[…]), device.run(task) | c.credentials(), c.add_credential(package, name, fields) |
run.wait(), run.events(), run.trajectory() | c.schedules(), c.add_schedule(task, devices, at, days, tz, every="hour", trigger="api", more=[…]), c.run_schedule(id) |
run.reply(), run.message(), run.cancel(), c.runs() | c.webhooks(), c.add_webhook(url, events) |
Từng bước
Python
phone = c.device("c3f9a41d2")
phone.open_app("com.android.chrome") # act
phone.tap_text("Search")
phone.type("weather in Berlin")
phone.key("enter")
phone.wait_text("Berlin", timeout=30) # check
png = phone.screenshot(width=540) # look| Nhìn | Thao tác |
|---|---|
screenshot(), screen_text(), find_text() | tap(), swipe(), scroll(), type(), key() |
observe(), size(), installed() | open_app(), open_url(), tap_text(), wait_text() |
notifications(), crashes(), health() | start(), stop(), restart(), reset() |
Các thao tác dài trên thiết bị trả về một Job và mặc định sẽ chờ; truyền wait=False nếu muốn tự hỏi trạng thái. Lỗi ném ra ClousdError kèm mã HTTP và thông báo. Client tự chờ và thử lại khi gặp 429. Từ terminal: clousd run "…" --device … hiển thị trực tiếp từng bước.
Mã nguồn và ví dụ: clousd-sdk trên GitHub.