@@ -15,6 +15,9 @@ title: "Scrapybara"
1515| ** Stealth Mode** | ❌ Not available | Create browser with ` stealth: true ` |
1616| ** Replays** | ❌ Not available | ` client.browsers.replays.start() ` and ` client.browsers.replays.stop() ` |
1717| ** Save Auth** | ` instance.browser.save_auth(name="default") ` | Create [ Profile] ( /browsers/profiles ) . Then create browser with ` kernel.browsers.create(profile={"name": "profile1", "save_changes": True}) ` |
18+ | ** Click** | ` instance.browser.computer.click_mouse(x=100, y=200) ` | ` client.browsers.computer.click_mouse(id=session_id, x=100, y=200) ` |
19+ | ** Drag** | ` instance.browser.computer.drag_mouse(path=[(100,100), (200,200)]) ` | ` client.browsers.computer.drag_mouse(id=session_id, from_x=100, from_y=100, to_x=200, to_y=200) ` |
20+ | ** Screenshot** | ` instance.screenshot() ` or ` instance.browser.computer.take_screenshot() ` | ` client.browsers.computer.capture_screenshot(id=session_id) ` |
1821
1922## How to migrate
2023
@@ -138,6 +141,68 @@ browser2 = await client.browsers.create(
138141)
139142```
140143
144+ ### Computer Controls
145+
146+ Both Scrapybara and Kernel provide Computer Controls APIs that allow you to programmatically control the browser environment at the system level - including mouse movements, clicks, keyboard input, and screenshots. Kernel has expanded on this functionality with a comprehensive set of computer control methods.
147+
148+ ** Scrapybara**
149+ ``` python
150+ instance = client.start_browser()
151+
152+ # Click at specific coordinates
153+ instance.browser.computer.click_mouse(x = 100 , y = 200 )
154+
155+ # Drag from one position to another
156+ instance.browser.computer.drag_mouse(
157+ path = [(100 , 100 ), (200 , 200 )]
158+ )
159+
160+ # Type text
161+ instance.browser.computer.type_text(text = " Hello World" )
162+
163+ # Take a screenshot
164+ screenshot = instance.browser.computer.take_screenshot()
165+ ```
166+
167+ ** Kernel**
168+ ``` python
169+ browser = await client.browsers.create()
170+
171+ # Click at specific coordinates with additional options
172+ client.browsers.computer.click_mouse(
173+ id = browser.session_id,
174+ x = 100 ,
175+ y = 200 ,
176+ button = " left" ,
177+ click_type = " click" ,
178+ num_clicks = 1
179+ )
180+
181+ # Drag from one position to another
182+ client.browsers.computer.drag_mouse(
183+ id = browser.session_id,
184+ from_x = 100 ,
185+ from_y = 100 ,
186+ to_x = 200 ,
187+ to_y = 200
188+ )
189+
190+ # Type text with optional delay
191+ client.browsers.computer.type_text(
192+ id = browser.session_id,
193+ text = " Hello World" ,
194+ delay = 100
195+ )
196+
197+ # Take a screenshot (full screen or specific region)
198+ screenshot = client.browsers.computer.capture_screenshot(
199+ id = browser.session_id,
200+ region = {" x" : 0 , " y" : 0 , " width" : 800 , " height" : 600 }
201+ )
202+ ```
203+
204+ For a complete reference of all available Computer Controls methods in Kernel, see the [ Computer Controls documentation] ( /browsers/computer-controls ) .
205+
141206
142207## Full API Comparison
143208
@@ -161,6 +226,14 @@ browser2 = await client.browsers.create(
161226| ** File Download** | Via browser, then ` instance.file() ` | ` client.browsers.fs.read_file() ` |
162227| ** Process Control** | ` instance.bash() ` | ` client.browsers.process.* ` |
163228| ** Proxy Support** | ❌ Not available | Create [ Proxy] ( /proxies/overview#1-create-a-proxy ) . Then create browser with ` client.browsers.create(proxy_id=proxy.id) ` |
229+ | ** Click Mouse** | ` instance.browser.computer.click_mouse(x=100, y=200) ` | ` client.browsers.computer.click_mouse(id=session_id, x=100, y=200) ` |
230+ | ** Move Mouse** | ` instance.browser.computer.move_mouse(x=100, y=200) ` | ` client.browsers.computer.move_mouse(id=session_id, x=100, y=200) ` |
231+ | ** Drag Mouse** | ` instance.browser.computer.drag_mouse(path=[(100,100), (200,200)]) ` | ` client.browsers.computer.drag_mouse(id=session_id, from_x=100, from_y=100, to_x=200, to_y=200) ` |
232+ | ** Scroll** | ` instance.browser.computer.scroll(delta_x=0, delta_y=100) ` | ` client.browsers.computer.scroll(id=session_id, delta_x=0, delta_y=100) ` |
233+ | ** Type Text** | ` instance.browser.computer.type_text(text="Hello") ` | ` client.browsers.computer.type_text(id=session_id, text="Hello") ` |
234+ | ** Press Key** | ` instance.browser.computer.press_key(keys=["Ctrl", "t"]) ` | ` client.browsers.computer.press_key(id=session_id, keys=["Ctrl+t"]) ` |
235+ | ** Take Screenshot** | ` instance.browser.computer.take_screenshot() ` | ` client.browsers.computer.capture_screenshot(id=session_id) ` |
236+ | ** Get Cursor Position** | ` instance.browser.computer.get_cursor_position() ` | Use ` move_mouse ` with tracking or CDP |
164237
165238---
166239
0 commit comments