const browser =
await chromium.launch(); سیشنز مفت ہیں — ادائیگی صرف ٹریفک کی کریں
Playwright کلاؤڈ میں چلائیں
اپنے Playwright اسکرپٹس اور ٹیسٹس کو Floppydata کلاؤڈ میں چلنے والے Chromium کی طرف موڑیں۔ ایک API ریکویسٹ براؤزر شروع کرتی ہے، connectOverCDP() اس سے جڑتا ہے، اور آپ کا باقی کوڈ ویسا ہی رہتا ہے۔
- connectOverCDP() سے جڑیں — کوئی براؤزر انسٹال کرنے کی ضرورت نہیں
- Node.js، Python اور Playwright Test
- Floppydata پراکسیز کے ساتھ مفت — آپ صرف ٹریفک کی ادائیگی کرتے ہیں
Playwright کو کلاؤڈ میں کیسے چلائیں
ایک API ریکویسٹ سے سیشن بنائیں، پھر اس کا connectUrl Playwright کو دیں۔ یہ مثال ہماری دستاویزات میں Cloud Browser گائیڈ کے مطابق ہے۔
تین مراحل
- 1 اپنے Floppydata اکاؤنٹ میں Client API key بنائیں۔
- 2 POST /v2/browser/sessions بھیجیں۔ جواب میں connectUrl ہوتا ہے۔
- 3 اسے connectOverCDP() کو دیں اور معمول کے مطابق کام کریں۔ براؤزر بند کرنے سے سیشن رک جاتا ہے۔
import { chromium } from 'playwright';const res = await fetch('https://api.floppydata.net/v2/browser/sessions', { method: 'POST', headers: { 'X-Api-Key': process.env.FLOPPY_API_KEY, 'Content-Type': 'application/json', }, body: JSON.stringify({ proxy: { type: 'residential', location: { countryCode: 'US' } }, }),});const { connectUrl } = await res.json();const browser = await chromium.connectOverCDP(connectUrl);const page = await browser.contexts()[0].newPage();await page.goto('https://example.com/');console.log(await page.title());await browser.close(); // stops the session import os, requestsfrom playwright.sync_api import sync_playwrightsession = requests.post( 'https://api.floppydata.net/v2/browser/sessions', headers={'X-Api-Key': os.environ['FLOPPY_API_KEY']}, json={'proxy': { 'type': 'residential', 'location': {'countryCode': 'US'}, }},).json()with sync_playwright() as p: browser = p.chromium.connect_over_cdp(session['connectUrl']) page = browser.contexts[0].new_page() page.goto('https://example.com/') print(page.title()) browser.close() import { test as base, expect, chromium } from '@playwright/test';const SESSIONS_URL = 'https://api.floppydata.net/v2/browser/sessions';const test = base.extend({ page: async ({}, use) => { const res = await fetch(SESSIONS_URL, { method: 'POST', headers: { 'X-Api-Key': process.env.FLOPPY_API_KEY, 'Content-Type': 'application/json', }, body: '{}', }); const { connectUrl } = await res.json(); const browser = await chromium.connectOverCDP(connectUrl); await use(await browser.contexts()[0].newPage()); await browser.close(); },});test('home page loads', async ({ page }) => { await page.goto('https://example.com/'); await expect(page.locator('h1')).toBeVisible();}); سیشن بنائیں، جڑیں، صفحہ کھولیں۔
لوکل Playwright سے کلاؤڈ Playwright تک
لوکل طور پر ہر Playwright worker اپنا Chromium شروع کرتا ہے۔ جیسے جیسے ٹیسٹ سوئٹ یا اسکریپر بڑھتا ہے، یہ براؤزر CPU اور میموری کے لیے مقابلہ کرتے ہیں، اور ہر CI رنر کو پہلے انہیں ڈاؤن لوڈ کرنا پڑتا ہے۔
Floppydata Cloud Browser کے ساتھ Chromium ریموٹ طور پر چلتا ہے۔ آپ کا کوڈ Chrome DevTools Protocol کے ذریعے جڑتا ہے، اس لیے آپ کی طرف playwright-core کافی ہے، اور ہر رن کو اپنا براؤزر سیشن ملتا ہے۔
const browser =
await chromium.connectOverCDP(connectUrl); اس لائن کے بعد سب کچھ ویسا ہی رہتا ہے۔ connectUrl اوپر والی سیشن بنانے کی ریکویسٹ سے آتا ہے۔
بلٹ اِن پراکسیز کے ساتھ Playwright
ہر سیشن Floppydata پراکسیز سے گزرتا ہے، اس لیے Playwright میں کوئی پراکسی سرور سیٹ اپ کرنے کی ضرورت نہیں۔ IP کی قسم، ملک اور روٹیشن منتخب کریں، اور نتیجہ سیشن بنانے کی ریکویسٹ کی باڈی کے طور پر بھیجیں۔
اپنا Playwright کلاؤڈ سیشن ترتیب دیں
{
"proxy": {
"type": "residential",
"location": {
"countryCode": "US"
},
"rotation": {
"mode": "sticky"
}
}
} اسی ریکویسٹ میں شہر، ریاست یا ASN بھی منتخب کیا جا سکتا ہے۔ رہائشی IPs 148 ممالک میں، موبائل 150 میں اور ڈیٹا سینٹر 71 میں دستیاب ہیں۔
لوکل یا کلاؤڈ Playwright
| لوکل Playwright | Cloud Browser پر Playwright | |
|---|---|---|
| Chromium | ہر مشین پر انسٹال اور اپ ڈیٹ ہوتا ہے | Floppydata کلاؤڈ میں چلتا ہے |
| CI میں براؤزر | ہر رنر پر ڈاؤن لوڈ ہوتے ہیں | ضرورت نہیں: playwright-core کافی ہے |
| پراکسی | ہر لانچ کے لیے آپ خود سیٹ اپ کرتے ہیں | بلٹ اِن: رہائشی، موبائل یا ڈیٹا سینٹر |
| متوازی براؤزر | آپ کے CPU اور RAM تک محدود | فی اکاؤنٹ 100 سیشنز تک |
| براؤزر کی لاگت | آپ کے سرورز کا وقت | مفت: صرف پراکسی ٹریفک کا بل بنتا ہے |
| کنکشن | Playwright پروٹوکول، ہر براؤزر انجن | CDP کے ذریعے connectOverCDP()، صرف Chromium |
connectOverCDP() وہ سب سنبھالتا ہے جو زیادہ تر اسکرپٹس کرتے ہیں (نیویگیشن، لوکیٹرز، کلکس، فارمز، انتظار اور JavaScript)، لیکن یہ مکمل Playwright پروٹوکول نہیں۔ کوئی بھی غیر معمولی چیز اپنے اسکرپٹس پر جانچیں۔
ہر سیشن کو اسکیل اور ترتیب دیں
ہر سیٹنگ سیشن بنانے کی ریکویسٹ کا ایک اختیاری فیلڈ ہے: صرف وہی بھیجیں جن کی ضرورت ہو، یا کچھ نہ بھیجیں اور رہائشی پراکسی، ہم آہنگ فنگر پرنٹ اور 10 منٹ کا ٹائم آؤٹ حاصل کریں۔
-
متوازی رنز: ایک اکاؤنٹ پر ایک ساتھ 100 سیشنز تک، درخواست پر اس سے زیادہ
-
فنگر پرنٹ: OS، لوکیل، ٹائم زون، ہارڈویئر، اور canvas، WebGL اور WebRTC ماسکنگ
-
رن ٹائم: 1 منٹ سے 6 گھنٹے تک، keepAlive آن ہونے پر دوبارہ کنیکٹ کے ساتھ
-
محفوظ حالت: براؤزر کی شناخت اور اس کی کوکیز کو مختلف سیشنز میں دوبارہ استعمال کریں
-
Start URLs: لانچ پر ایک یا زیادہ صفحات کھولیں، ہر ایک اپنے ٹیب میں
-
Metadata: سیشن پر اپنے کام کی ID لگائیں تاکہ اسے اپنے لاگز سے ملا سکیں
Playwright رنز کو لائیو براؤزر میں ڈیبگ کریں
جب کوئی اسکرپٹ کسی ایسی اسکرین پر رک جائے جس کی اسے توقع نہیں تھی، جیسے رضامندی کا بینر یا لاگ اِن کا اضافی مرحلہ، تو اپنے براؤزر میں سیشن کا لائیو ویو کھولیں اور دیکھیں کہ صفحہ بالکل کیا دکھا رہا ہے۔
Playwright اور لائیو ویو ایک ہی سیشن کو باری باری استعمال کرتے ہیں، اس لیے رن وہیں سے جاری رہتا ہے جہاں رکا تھا، نئے سرے سے شروع نہیں ہوتا۔ UI موڈ کے بارے میں مزید
- 1 سیشن keepAlive: true کے ساتھ بنائیں، تاکہ ڈسکنیکٹ کرنے سے وہ رک نہ جائے۔
- 2 جب کوئی رن کسی غیر متوقع اسکرین پر رک جائے تو Playwright کو ڈسکنیکٹ کریں۔
- 3 لائیو ویو طلب کریں اور کھولیں: صفحہ دیکھیں اور اسے ہاتھ سے سنبھالیں۔
- 4 سیشن دوبارہ حاصل کریں اور نئے connectUrl سے Playwright کو دوبارہ جوڑیں۔
Floppydata پراکسی صارفین کے لیے مفت
Cloud Browser میں نہ سبسکرپشن ہے، نہ رن ٹائم یا فی سیشن فیس۔ ہر سیشن Floppydata پراکسیز سے گزرتا ہے، اور آپ صرف اس پراکسی ٹریفک کی ادائیگی کرتے ہیں جو وہ استعمال کرتا ہے: $1.00 فی GB سے، رہائشی، موبائل اور ڈیٹا سینٹر کے لیے ایک ہی ریٹ۔
اگر آپ پہلے سے Floppydata پراکسیز خریدتے ہیں تو Cloud Browser شامل ہے: وہی بیلنس، وہی API کی۔ ایک اکاؤنٹ پر ایک ساتھ 100 سیشنز تک چلائیں، یا حد بڑھانے کے لیے سپورٹ سے کہیں۔
کلاؤڈ میں Playwright کنکشن کی عام غلطیاں
جب کچھ غلط ہو تو API یا کنکشن کیا بتاتا ہے، اور اس کے بارے میں کیا کرنا ہے۔
| غلطی | اس کا مطلب | کیا کریں |
|---|---|---|
unauthorized | دستخط شدہ connectUrl کی میعاد ختم ہو گئی ہے یا وہ غلط ہے۔ | سیشن دوبارہ حاصل کریں اور اس کے نئے connectUrl سے جڑیں۔ |
connection_in_use | کوئی دوسرا کلائنٹ یا لائیو ویو پہلے سے جڑا ہوا ہے: ہر سیشن پر صرف ایک کنکشن کی اجازت ہے۔ | دوسرا کنکشن بند کریں، پھر دوبارہ کوشش کریں۔ |
session_not_active | سیشن رک گیا، اس کا وقت ختم ہو گیا یا ناکام ہو گیا۔ | نیا سیشن بنائیں؛ لمبے کاموں کے لیے runtime.timeoutSeconds بڑھائیں۔ |
| کنکشن بند ہو جاتا ہے | ایک ہی پیغام تقریباً 1 MiB سے بڑا ہو گیا، جیسے پورے صفحے کا اسکرین شاٹ یا اسکرین کاسٹ کا فریم۔ | ویو پورٹ یا کسی ایلیمنٹ کا اسکرین شاٹ لیں، یا مطلوبہ حصہ کراپ کریں۔ |
upstream_error | براؤزر سروس کا ایک عمل لمحے بھر کے لیے ناکام ہو گیا۔ | دوبارہ کوشش کریں: سیشن روکنے کا عمل محفوظ طریقے سے دہرایا جا سکتا ہے۔ |