Ready-to-use Selenium, Playwright, and CDP for automated web application testing and open data collection
Start for Free
Free monthly credits
Compatibility with official documentation
Ready-made infrastructure
Available in Russia and CIS
You won't have to rewrite your tests to work with our infrastructure.
If you use PHP, Python, JavaScript, TypeScript, Java, .NET (C#), Go, Ruby, Kotlin or other popular programming languages, we'll work well together!
You can use our infrastructure gradually to evaluate the workflow before fully migrating. For example, connect it only for new projects.
No complex setup — just change a few lines in your code! Take any of your scripts and see for yourself with our demo cluster.
Our infrastructure is a great testing ground for your experiments. Use it to try migrating between testing frameworks and demonstrate capabilities to colleagues.
Recommend our platform and earn rewards from your very first referral. Our partner program is built on fair reward conditions and honest relationships.
Extract data from dozens of sources in parallel
Render web pages in bulk to HTML and PDF
Take screenshots at any resolution for your reports
LangChain, CrewAI, Browser Use, AutoGPT — connect in one line. 1000 free credits included.
import asyncio
from browser_use import Agent, Browser, ChatBrowserUse
XCLOUDS_CDP_API_KEY = 'your xclouds api key'
BROWSER_USE_API_KEY = 'your browser-use api key'
async def main():
browser = Browser(cdp_url=f'wss://cdp.xclouds.dev/cdp/?api_key={XCLOUDS_CDP_API_KEY}')
agent = Agent(
task='Visit https://habr.com/ and search for "vpn"',
browser=browser,
llm=ChatBrowserUse(api_key=BROWSER_USE_API_KEY),
)
await agent.run()
if __name__ == "__main__":
asyncio.run(main())
import asyncio
from langchain_openai import ChatOpenAI
from browser_use import Agent, Browser
XCLOUDS_CDP_URL = "wss://cdp.xclouds.dev/cdp/?api_key=YOUR_API_KEY"
agent = Agent(
task="Find the latest AI news",
llm=ChatOpenAI(model="gpt-4o"),
browser=Browser(cdp_url=XCLOUDS_CDP_URL)
)
asyncio.run(agent.run())
from crewai.tools import tool
XCLOUDS_SELENIUM_URL = "http://selenium.xclouds.dev/wd/hub?api_key=YOUR_API_KEY"
@tool
def selenium_browser(uri):
"""Fetch a page through the xclouds remote Selenium browser."""
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.chrome.options import Options as ChromeOptions
from urllib3.exceptions import MaxRetryError
try:
driver = webdriver.Remote(command_executor=XCLOUDS_SELENIUM_URL, options=ChromeOptions())
driver.get(uri)
page_source = driver.page_source
driver.quit()
except WebDriverException as e:
print(f"Error: {e.msg}")
except MaxRetryError as e:
print(f"Host is unavailable")
return page_source
# Don't like Selenium?
# You can create tool with Playwright, Puppeteer or CDP. We have it all!
# See our exmaples in proper sections after registration.
# Set PLAYWRIGHT_SERVER_URL in .env:
# wss://playwright.xclouds.dev/v1.58/?api_key=YOUR_API_KEY
# Or direct Playwright connection:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.connect(
ws_endpoint='wss://playwright.xclouds.dev/v1.58/?api_key=YOUR_API_KEY'
)
Expose your local server to a remote browser session in seconds. No config files, no port forwarding — one command.
$ xclouds tunnel start --authtoken AUTH_TOKEN --local-port 81 Connecting to xclouds.dev... ✓ Tunnel active: https://a3f7c291.tunnel.xclouds.dev