playwright-ai-codegen-lib
Version:
A utility to auto-generate Playwright PageObjects and test scripts using OpenAI and DOM extraction.
92 lines (57 loc) • 2.2 kB
Markdown
from pathlib import Path
readme_path = Path("README.md")
readme_content = """# 🎭 playwright-ai-codegen-lib
A powerful utility library to **auto-generate Playwright PageObjects and test scripts** using the DOM structure of any webpage — powered by **OpenAI GPT models**.
Perfect for automation engineers and SDETs looking to **accelerate test development** and **bootstrap test coverage** with AI assistance.
---
## ✨ Features
- ✅ **Generates PageObject classes** by extracting DOM from any URL
- ✅ **Creates functional methods** (e.g., `clickButton`, `fillInput`) using OpenAI
- ✅ **Builds Playwright test files** from generated PageObjects
- ✅ Designed with **TypeScript**, **Playwright**, and **OpenAI** SDK
- ✅ **CLI-friendly** and easy to integrate into any test automation framework
---
## 📦 Installation
```bash
npm install playwright-ai-codegen-lib
```
For local development:
```bash
git clone https://github.com/mohitkalra610/playwright-ai-codegen-lib.git
cd playwright-ai-codegen-lib
npm install
npm run build
```
---
## 🚀 Usage
### 1️⃣ Generate PageObject from a URL
```bash
npm run generate -- https://example.com
```
This will navigate to the given URL, extract the DOM, and generate a Playwright PageObject file inside `pageObjects/`.
---
### 2️⃣ Generate Interaction Functions from PageObject
```bash
npm run generate:functions -- pageObjects/MyPageObject.ts
```
This enhances the PageObject with useful interaction methods like `clickLoginButton`, `fillUsernameField`, etc.
---
### 3️⃣ Generate Playwright Test Scripts
```bash
npm run generate:tests -- pageObjects/MyPageObject.ts
```
Generates a full test file inside the `tests/` directory based on your PageObject, ready to be executed with Playwright.
---
## 🛠️ Requirements
- Node.js >= 18
- Playwright
- OpenAI API Key (set in `.env` as `OPENAI_API_KEY`)
---
## 🤝 Contributing
Feel free to open issues, fork the repo, and submit PRs.
---
## 📄 License
MIT © [Mohit Kalra](https://github.com/mohitkalra610)
"""
readme_path.write_text(readme_content)
readme_path