
نسخة غير مكتشفة من مكتبة Playwright للاختبار والأتمتة.
<h1 align="center">
🎭 Patchright
</h1>
<p align="center">
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/blob/main/LICENSE">
<img src="https://img.shields.io/badge/License-Apache%202.0-green">
</a>
<a>
<img src="https://img.shields.io/badge/Based%20on-Playwright-goldenrod">
</a>
<a>
<img src="https://img.shields.io/badge/Driver-Patched-blue">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/releases/latest">
<img alt="Patchright Version" src="https://img.shields.io/github/v/release/Kaliiiiiiiiii-Vinyzu/patchright?display_name=release&label=Version">
</a>
<br/>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python">
<img src="https://img.shields.io/badge/Package-Python-seagreen">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/releases">
<img alt="Python Downloads" src="https://img.shields.io/pepy/dt/patchright?color=red&label=Python%20Downloads">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs">
<img src="https://img.shields.io/badge/Package-NodeJS-seagreen">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs/releases">
<img alt="NodeJS Downloads" src="https://img.shields.io/npm/d18m/patchright?color=red&label=NodeJS%20Downloads">
</a>
<a href="https://github.com/DevEnterpriseSoftware/patchright-dotnet">
<img src="https://img.shields.io/badge/Package-.Net-seagreen">
</a>
<a href="https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs/releases">
<img alt=".Net Downloads" src="https://img.shields.io/nuget/dt/Patchright?label=.Net%20Downloads">
</a>
<br/>
<img src="https://img.shields.io/github/actions/workflow/status/Kaliiiiiiiiii-Vinyzu/patchright/patchright_tests.yml?label=Patchright%20Driver%20Tests">
<img src="https://img.shields.io/github/actions/workflow/status/Kaliiiiiiiiii-Vinyzu/patchright-python/patchright_tests.yml?label=Patchright%20Python%20Tests">
<img src="https://img.shields.io/github/actions/workflow/status/DevEnterpriseSoftware/patchright-dotnet/patchright_test.yml?label=Patchright%20.Net%20Tests">
</p>
#### Patchright هو إصدار مُرقَّع وغير قابل للكشف من إطار عمل الاختبار والأتمتة Playwright. </br> يمكن استخدامه كبديل مباشر لـ Playwright.
> [!NOTE]
> هذا المستودع يوفّر Patchright Driver. لاستخدام Patchright، راجع [حزمة Python](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python)، أو [حزمة NodeJS](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs) أو [حزمة .Net](https://github.com/DevEnterpriseSoftware/patchright-dotnet/) _المدعومة من المجتمع_
> [!IMPORTANT]
> يقوم Patchright بترقيع المتصفحات المبنية على CHROMIUM فقط. لا يتم دعم Firefox وWebkit.
---
<details open id="sponsors">
<summary><h3>الرعاة</h1></summary>
<sup>هل ترغب في رعاية هذا المشروع؟ تواصل مع [@vinyzu](https://discordapp.com/users/935224495126487150) على Discord!</sup>
[<img width="60%" alt="NodeMaven Banner" src="https://assets.kitploit.com/production/public/readmes/41476/8409e9fd4ecade7fa018f576c77d6f51fb342f311f9e8e2b49984de007b5a605/fc71d82e04f5dc303d21f905310e811885d8a6a57ddffe892b4164bf12547371-display-v1.webp" />](https://go.nodemaven.com/Vinyzuoctober)
</br>
#### [NodeMaven](https://go.nodemaven.com/Vinyzuoctober): مزوّد البروكسي الفعّال الخاص بك لكشط الويب والأتمتة بعناوين IP عالية الجودة.
لماذا [NodeMaven](https://go.nodemaven.com/Vinyzuoctober)؟
🎯 استهداف حسب الرمز البريدي (ZIP)
</br>
✅ وقت تشغيل بنسبة 99.9%
</br>
🔍 تصفية IP: البروكسيات مضمونة بدرجة احتيال أقل من 97%
</br>
🔰 لا حاجة إلى KYC
</br>
🎉 أدوات مجانية فريدة: فاحص نطاق تردد البروكسي، وفاحص العلامات الوصفية (Meta Tag)، والبحث عن IP وغيرها!
**أكواد خاصة** لمستخدمي Patchright:
</br>
🔥 **PATCHRIGHT35** - **خصم 35%** على بروكسيات الهاتف المحمول والسكنية
</br>
🔥 **PATCHRIGHT40** - **خصم 40%** على بروكسيات ISP (الثابتة)
<sup>اختر الجودة والاستقرار مع [NodeMaven](https://go.nodemaven.com/Vinyzuoctober).</sup>
</br>
<sup>تفقّد مستودع NodeMaven الجديد على GitHub لمزيد من حلول كشط الويب والأتمتة - https://github.com/nodemaven</sup>
---
[<img height="100" alt="swiftproxy banner" src="https://assets.kitploit.com/production/public/readmes/41476/71326e65aa66112fe5c3cd5a61951b775d58850b93eaaf166fd77930681f5174.png" />](https://www.swiftproxy.net/?ref=Vinyzu)
#### [Swiftproxy](https://www.swiftproxy.net/?ref=Vinyzu): وكلاء سكنيون عاليو الأداء لجمع البيانات القابل للتوسع
مصمّم للمطوّرين الذين يحتاجون إلى بنية تحتية موثوقة للوكلاء مضادة للكشف. يوفّر [Swiftproxy](https://www.swiftproxy.net/?ref=Vinyzu) **اتصالات مستقرة**، و**معدلات نجاح عالية**، وتحكّماً مرناً في **الكشط والأتمتة على نطاق واسع**.
- 🌍 أكثر من 195 موقعاً مع عناوين IP سكنية من مصادر أخلاقية
- 🔄 **جلسات متناوبة** و**ثابتة** مع استهداف جغرافي دقيق
- ⚡ مُحسَّن لـ**مقاومة الحظر** و**معدل نجاح عالٍ**
- 🔌 دعم HTTP / HTTPS / SOCKS5
- 🧪 **تجربة مجانية بسعة 500MB** للاختبار
- 💸 **رمز خصم خاص** لمستخدمي Patchright: **PROXY90 - 10%**
<sup> الأفضل لـ: كشط الويب، والأتمتة، وتعدد الحسابات، واستخراج البيانات على نطاق واسع </sup>
---
[<img height="90" alt="rapidproxy banner" src="https://assets.kitploit.com/production/public/readmes/41476/2c138417cf7695cb48943327f3d6d9036986882c2a4ffe5e9172f07386a9f229.png" />](https://www.rapidproxy.io/?ref=Vinyzu)
#### [RapidProxy](https://www.rapidproxy.io/?ref=Vinyzu) يوفّر شبكة وكلاء مستقرة وعالية الأداء مبنية لعمليات البيانات على نطاق واسع.
يقدّم [RapidProxy](https://www.rapidproxy.io/?ref=Vinyzu):
- 🌍 أكثر من 90 مليون عنوان IP سكني (أكثر من 200 موقع)
- 🔄 **وكلاء سكنيون متناوبون** — ابتداءً من **$0.65/GB** (حركة مرور لا تنتهي صلاحيتها)
- 🧩 **عناوين IP سكنية ثابتة** — **$5/IP** (30 يوماً، حركة مرور غير محدودة)
- 🎯 استهداف جغرافي دقيق
- ⚡ **تجربة مجانية متاحة** — اختبر أداء الوكلاء دون مخاطرة
- مبني للكشط والأتمتة وسير عمل البيانات عالي الأداء.
- 🔥 عرض خاص: استخدم الرمز **RAPID10** للحصول على **خصم 10%**
<sup> ابدأ بسرعة. توسّع عالمياً. ابقَ مستقراً مع [RapidProxy](https://www.rapidproxy.io/?ref=Vinyzu). </sup>
---
<div align="center">
<img src="https://assets.kitploit.com/production/public/readmes/41476/f3ac5dd3dd1ac541342eeda194f605fe1e28f9b044c0a90867b6db914c4a1b48/ad967b2ca510d337e9c8e72d654869c8fc75b08b088e358e074a6bbb003e6639-display-v1.webp" width="56" alt="Scrappey">
### برعاية [Scrappey](https://scrappey.com?utm_source=patchright&utm_medium=github&utm_campaign=repo_readme)
</div>
تجاوز المتصفح للكشف مشكلة واحدة. أما الحفاظ على تدوير الوكلاء، وبقاء البصمات محدّثة، والجلسات حيّة عبر بضعة ملايين من الطلبات فهي مشكلة أخرى. يتولّى **Scrappey** المشكلة الثانية: نقطة نهاية واحدة، وصفحات محلولة تعود إليك.
- **Clearcote** — نسخة Chromium المُرقَّعة الخاصة بنا، تُصان داخلياً، وليست بناءً جاهزاً
- **عدة محركات خلف نقطة نهاية واحدة** — عند الحظر على حزمة واحدة، يُوجَّه الطلب إلى أخرى
- **النقر والكتابة والانتظار والتمرير** عبر الـ API — جلسة حقيقية، وليس وكيل جلب
- **وكلاء سكنيون ووكلاء مراكز بيانات** مضمّنة، أو أحضر وكلاءك الخاصة
- **لكل طلب**، دون حد أدنى شهري
```bash
curl -X POST "https://publisher.scrappey.com/api/v1?key=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"cmd": "request.get", "url": "https://example.com"}'
```
احصل على خصم 10% باستخدام الرمز `PATCHRIGHT`
[التوثيق](https://scrappey.com/docs?utm_source=patchright&utm_medium=github&utm_campaign=repo_readme) · [Discord](https://scrappey.com/discord?utm_source=patchright&utm_medium=github&utm_campaign=repo_readme) · [احصل على مفتاح API](https://scrappey.com?utm_source=patchright&utm_medium=github&utm_campaign=repo_readme)
---
[<img height="120" alt="ProxyLane Banner" src="https://assets.kitploit.com/production/public/readmes/41476/ed95563a028e0c1cefb4f5dccc8f7b69653f4c3fb7d5c4b5099b4cd5718714b7/7afb4fb03926a17d778280ff8bc7b2f62f5206d212d2b7525ea6ee90ae8ed0d3-display-v1.webp" />](https://proxylane.dev/?utm_source=patchright&utm_medium=partnership&utm_campaign=patchright_sponsor_202610&utm_content=readme)
</br>
#### [ProxyLane](https://proxylane.dev/?utm_source=patchright&utm_medium=partnership&utm_campaign=patchright_sponsor_202610&utm_content=readme): وكلاء بروكسي سكنية تحافظ على اتساق كل ملف تعريف Patchright.
لمطابقة المنطقة الزمنية المُبلَّغ عنها مع البروكسي الخاص بك، امنح كل ملف تعريف عنوان IP ثابتًا خاصًا به مثبَّتًا على مدينة معينة واضبط نفس المنطقة الزمنية:
```py
context = playwright.chromium.launch_persistent_context(
user_data_dir="...", channel="chrome", headless=False, no_viewport=True,
proxy={"server": "http://us.gw.proxylane.dev:10000",
"username": "USER_c_US_city_Chicago_s_profile1", # one sticky IP per profile
"password": "PASS"},
timezone_id="America/Chicago", locale="en-US", # match the proxy city
)
```
<sup>نصيحة: اضبط `--webrtc-ip-handling-policy=disable_non_proxied_udp`، وإلا فإن [WebRTC يكشف عنوان IP الحقيقي الخاص بك](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/issues/47).</sup>
:earth_africa: 28 مليون عنوان IP سكني في 195 دولة، مع استهداف حسب المدينة والرمز البريدي وASN
</br>
:stopwatch: جلسات ثابتة تصل إلى 72 ساعة، HTTP وSOCKS5
</br>
:money_with_wings: ابتداءً من 2$/GB، حركة المرور لا تنتهي صلاحيتها أبدًا
:fire: **PATCHLANE35** - **خصم 35%** لمستخدمي Patchright
<sup>الصق المقتطف، وأضف بيانات الاعتماد الخاصة بك، وشغّل جلستك التالية من Patchright على عنوان IP سكني حقيقي مع [ProxyLane](https://proxylane.dev/?utm_source=patchright&utm_medium=partnership&utm_campaign=patchright_sponsor_202610&utm_content=readme_caption).</sup>
</details>
---
## التصحيحات
### تسريب [Runtime.enable](https://vanilla.aslushnikov.com/?Runtime.enable)
هذا هو أكبر تصحيح يستخدمه Patchright. لتجنب الكشف عبر هذا التسريب، يتجنب patchright استخدام [Runtime.enable](https://vanilla.aslushnikov.com/?Runtime.enable) عن طريق تنفيذ Javascript في ExecutionContexts (معزولة).
### تسريب [Console.enable](https://vanilla.aslushnikov.com/?Console.enable)
يعالج Patchright هذا التسريب عن طريق تعطيل Console API بالكامل. وهذا يعني أن وظائف console لن تعمل في Patchright. إذا كنت بحاجة فعلية إلى console، فقد يكون من الأفضل لك استخدام مسجلات Javascript، رغم أنه يمكن اكتشافها بسهولة أيضًا.
### تسريبات أعلام الأوامر
يعدّل Patchright وسائط Playwright الافتراضية لتجنب الكشف عبر تسريبات أعلام الأوامر. ويؤثر هذا (الأهم من ذلك) على:
- `--disable-blink-features=AutomationControlled` (مضاف) لتجنب اكتشاف navigator.webdriver.
- `--enable-automation` (محذوف) لتجنب اكتشاف navigator.webdriver.
- `--disable-popup-blocking` (محذوف) لتجنب تعطل النوافذ المنبثقة.
- `--disable-component-update` (محذوف) لتجنب الكشف كـ Stealth Driver.
- `--disable-default-apps` (محذوف) لتمكين التطبيقات الافتراضية.
- `--disable-extensions` (محذوف) لتمكين الإضافات
### تسريبات عامة
يعالج Patchright بعض التسريبات العامة في قاعدة شيفرة Playwright. ويشمل ذلك بشكل أساسي الإعدادات الضعيفة ونقاط الكشف الواضحة.
### جذور الظل المغلقة
يستطيع Patchright التفاعل مع العناصر داخل جذور الظل المغلقة (Closed Shadow Roots). ما عليك سوى استخدام محددات المواقع العادية وسيتولى Patchright الباقي.
<br/>
يستطيع Patchright الآن أيضًا استخدام XPaths داخل جذور الظل المغلقة.
---
## التخفي
مع الإعداد الصحيح، يُعتبر Patchright حاليًا غير قابل للكشف.
يجتاز Patchright:
- [Brotector](https://kaliiiiiiiiii.github.io/brotector/) ✅ (مع [CDP-Patches](https://github.com/Kaliiiiiiiiii-Vinyzu/CDP-Patches/))
- [Cloudflare](https://cloudflare.com/) ✅
- [Kasada](https://www.kasada.io/) ✅
- [Akamai](https://www.akamai.com/products/bot-manager/) ✅
- [Shape/F5](https://www.f5.com/) ✅
- [Bet365](https://bet365.com/) ✅
- [Datadome](https://datadome.co/products/bot-protection/) ✅
- [Fingerprint.com](https://fingerprint.com/products/bot-detection/) ✅
- [CreepJS](https://abrahamjuliot.github.io/creepjs/) ✅
- [Sannysoft](https://bot.sannysoft.com/) ✅
- [Incolumitas](https://bot.incolumitas.com/) ✅
- [IPHey](https://iphey.com/) ✅
- [Browserscan](https://browserscan.net/) ✅
- [Pixelscan](https://pixelscan.net/) ✅
---
## الأخطاء
#### على الرغم من أننا قضينا الكثير من الوقت لجعل Patchright مستقرًا قدر الإمكان، فقد تظل الأخطاء تحدث. إذا واجهت أي أخطاء، فيرجى الإبلاغ عنها في [Issues](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/issues).
#### يتم الآن اختبار Patchright مقابل اختبارات Playwright بعد كل إصدار. انظر [هنا](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/actions/workflows/patchright_tests.yml)
> [!WARNING]
> يجتاز Patchright معظم اختبارات Playwright، لكن ليس جميعها. بعض الأخطاء تُعتبر مستحيلة الحل، وبعضها غير ذي صلة. انظر قائمة الأخطاء وتفسيرها [هنا](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/issues/30).
#### بناءً على اختبارات Playwright، خلصنا إلى أنه من غير المرجح جدًا أن تتأثر بهذه الأخطاء في حالات الاستخدام العادية.
<details>
<summary><b>مناورات سكربت التهيئة</b></summary>
### الشرح
لكي نتمكن من استخدام InitScripts دون [Runtime.enable](https://vanilla.aslushnikov.com/?Runtime.enable)، يستخدم Patchright مسارات Playwright (Playwright Routes) لحقن JavaScript في طلبات HTML.
### الأخطاء
قد تتسبب مسارات Playwright في بعض الأخطاء في أجزاء أخرى من شفرتك. لن تتسبب InitScripts الخاصة بـ Patchright في أي أخطاء لم تكن مسارات Playwright العادية لتسببها. </br> إذا كنت ترغب في إصلاح أي من هذه الأخطاء، فسيتعين عليك التواصل مع فريق Playwright.
### التسريبات
يمكن اكتشاف InitScripts الخاصة بـ Patchright عبر هجمات التوقيت (Timing Attacks). ومع ذلك، لا يتحقق أي برنامج مضاد للبوتات حاليًا من هذا النوع من هجمات التوقيت، وعلى الأرجح لن يفعلوا ذلك لفترة طويلة. </br> نحن نعتبر أنها لا تشكل خطرًا كبيرًا للاكتشاف.
</details>
---
### TODO
- [x] تنفيذ خيار لاختيار سياق التنفيذ (Main/Isolated).
- [x] إصلاح الأخطاء القابلة للإصلاح.
- [x] تنفيذ محدّث .patch لعرض تصحيحات Patchright بسهولة.
- [x] إعداد الاختبار الآلي عند الإصدار الجديد.
- [x] تنفيذ Patchright على .NET.
- [ ] تنفيذ Patchright على Java.
---
## التطوير
نشر إصدارات Patchright الجديدة يتم تلقائيًا، لكن قد تحدث أخطاء بسبب تغييرات في قاعدة شفرة Playwright. قد تستغرق إصلاحات هذه الأخطاء بضعة أيام حتى يتم إصدارها.
---
## ادعم عملنا
إذا اخترت دعم عملنا، فيرجى التواصل مع [@vinyzu](https://discord.com/users/935224495126487150) أو [@steve_abcdef](https://discord.com/users/936292409426477066) على Discord.
---
## حقوق النشر والترخيص
© [Vinyzu](https://github.com/Vinyzu/)
Patchright مرخّص بموجب [Apache 2.0](https://choosealicense.com/licenses/apache-2.0/)
[بعض الأجزاء](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright/blob/10c5a090e9a1dcd2107c253d65b3d8b27d0670a9/driver_patches/framesPatch.ts#L156-L171) من قاعدة الشفرة مستوحاة من [Driverless](https://github.com/kaliiiiiiiiii/Selenium-Driverless).
شكرًا لـ [Nick Webson](https://github.com/rebrowser/rebrowser-patches) على فكرة توثيق ملفات .patch.
---
## إخلاء المسؤولية
يُقدَّم هذا المستودع **لأغراض تعليمية فقط**. \
لا تُقدَّم أي ضمانات بشأن الدقة أو الاكتمال أو الملاءمة لأي غرض. **استخدمه على مسؤوليتك الخاصة**—لا يتحمل المؤلفون والمشرفون **أي مسؤولية** عن **أي أضرار** أو **مشكلات قانونية** أو **انتهاكات للضمان** ناتجة عن استخدام هذا الكود أو تعديله أو توزيعه.\
**أي إساءة استخدام أو انتهاكات قانونية هي مسؤولية المستخدم وحده**.
---
## المؤلفون
#### المشرف النشط: [Vinyzu](https://github.com/Vinyzu/) </br> المشرف المشارك: [Kaliiiiiiiiii](https://github.com/kaliiiiiiiiii/)