Skip to main content

se-test-generator

Generates a runnable Selenium 4 + TestNG test in Java from a plain-language scenario, using explicit waits and stable locators. Use when an SDET says "write a Selenium test for login", "generate a TestNG test for the checkout flow", "automate this scenario in Selenium", or pastes Gherkin/steps and wants Java WebDriver code. Produces a draft test the engineer must review and run.

ソース情報

リポジトリ
PramodDutta/skillmasterclass
ソースの最終更新活動
2026年7月14日 16:35
検出された SKILL.md の言語
英語
スター
3
フォーク
8

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
se-test-generator
description
Generates a runnable Selenium 4 + TestNG test in Java from a plain-language scenario, using explicit waits and stable locators. Use when an SDET says "write a Selenium test for login", "generate a TestNG test for the checkout flow", "automate this scenario in Selenium", or pastes Gherkin/steps and wants Java WebDriver code. Produces a draft test the engineer must review and run.
license
MIT
metadata
{"author":"TheTestingAcademy","pack":"selenium","version":"1.0.0"}
# Selenium Test Generator You draft a **Selenium + TestNG test the engineer still has to run and verify** — not a guaranteed-passing artifact. Locators you emit are proposals until confirmed against the real DOM. ## When to use - A scenario, user story, or Gherkin steps are given and someone wants a Java Selenium test. - Someone says "automate this flow" / "generate a TestNG test" / "turn these steps into WebDriver code". - An existing manual test case needs a first-pass automation draft. ## Workflow 1. **Parse the scenario** into: preconditions, ordered actions, and observable assertions. If the target URL, credentials, or expected result are missing, ask — do not invent them. 2. **Map each step to an interaction**: navigation, input, click, or assertion. Note which UI element each touches and flag any element whose locator you cannot confirm. 3. **Choose stable locators** — prefer `By.id`, then `By.cssSelector`, then Selenium 4 relative locators (`with(...).below(...)`). Avoid absolute XPath. Mark unconfirmed locators with a `// TODO: confirm locator` comment. 4. **Add explicit synchronization** — a `WebDriverWait` with `ExpectedConditions` before every interaction that depends on element state. Never emit `Thread.sleep`. 5. **Write assertions** using TestNG `Assert`, tied to the scenario's expected result. 6. **Emit the test** with `@BeforeMethod`/`@AfterMethod` lifecycle and Selenium Manager driver setup, then list the assumptions and unconfirmed locators for the engineer. ## Output shape ```java public class LoginTest { private WebDriver driver; private WebDriverWait wait; @BeforeMethod public void setUp() { driver = new ChromeDriver(); // Selenium Manager resolves the driver driver.manage().window().maximize(); wait = new WebDriverWait(driver, Duration.ofSeconds(10)); } @Test public void validUserCanLogIn() { driver.get("https://app.example.com/login"); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("username"))).sendKeys("qa_user"); driver.findElement(By.id("password")).sendKeys("secret"); // TODO: confirm locator driver.findElement(By.cssSelector("button[type='submit']")).click(); WebElement banner = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("[data-test='welcome']"))); Assert.assertTrue(banner.isDisplayed(), "Welcome banner should appear after login"); } @AfterMethod public void tearDown() { if (driver != null) driver.quit(); } } ``` ## Guardrails - This is a **draft the engineer must run and review** — never claim the test passes; you have not executed it. - **Never assume a locator exists.** Every locator you did not verify against the real DOM gets a `// TODO: confirm locator` and appears in your assumptions list. - Do not fabricate URLs, credentials, or expected results — a missing input is a question, not a blank to fill. - Never emit `Thread.sleep`; synchronize with `WebDriverWait`/`ExpectedConditions`. - Prefer `By.id`/`By.cssSelector`/relative locators over brittle absolute XPath. - Always `driver.quit()` in teardown so sessions don't leak.
GitHubで見る