본문으로 건너뛰기
cccskills
무료GitHub에 공개

playwright-demo:debug

Debug failing Playwright demo steps - selectors, auth, timing, and alignment issues

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl스타 303(GitHub 303 + cccskills 0)
연동 도구Playwright

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md3.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Debug Playwright Demo Issues

Troubleshoot and fix failing steps in Playwright demo walkthrough tests.

When to Use

  • A demo recording step fails (selector not found, auth error, timeout)
  • Narration-video alignment validation fails
  • Video shows wrong content during narration
  • Multiple voices overlapping in output

Debugging Workflow

  1. Check the test output for [demo] log lines — identify which step failed
  2. Look at screenshots in local_experiments/test-results/<test-dir>/test-failed-1.png
  3. Run validation to check structural issues:
python3 local_experiments/validate-alignment.py

Common Issues

Selector not found

Symptom: element not visible or timeout waiting for selector

Screenshot the page to see actual DOM:

cd rossoctl/ui-v2 && NODE_PATH=node_modules node -e "
const { chromium } = require('@playwright/test');
(async () => {
  const b = await chromium.launch();
  const p = await b.newPage({ ignoreHTTPSErrors: true });
  await p.goto('TARGET_URL', { waitUntil: 'networkidle', timeout: 30000 });
  await p.screenshot({ path: '/tmp/rossoctl/debug.png', fullPage: true });
  const els = await p.evaluate(() =>
    Array.from(document.querySelectorAll('a, button, [role=tab]')).map(e => ({
      tag: e.tagName, text: e.textContent?.trim()?.substring(0, 50), href: e.href
    }))
  );
  console.log(JSON.stringify(els, null, 2));
  await b.close();
})();
"

Missing markStep timestamp

Symptom: Validation shows Section [name] has no markStep() timestamp

Fix: The markStep() call is inside a conditional block that didn't execute. Move it outside:

// WRONG - inside conditional
if (await element.isVisible()) {
  markStep('section_name');
  await element.click();
}

// RIGHT - outside conditional
markStep('section_name');
if (await element.isVisible()) {
  await element.click();
}

Keycloak auth lost on SPA navigation

Symptom: Page redirects to Keycloak after clicking sidebar link

Fix: Use SPA sidebar clicks (client-side routing), not page.goto():

// WRONG - full reload loses Keycloak tokens
await page.goto(`${UI_URL}/agents`);

// RIGHT - SPA navigation preserves tokens
const link = page.locator('nav a').filter({ hasText: /^Agents$/ });
await demoClick(link.first(), 'Agents sidebar');

MLflow OIDC login

Symptom: MLflow shows login page or "User not allowed"

MLflow uses 2-stage auth:

  1. MLflow's own OIDC page at /oidc/ui/auth — click SSO button
  2. Keycloak login (may auto-login if session exists)

After login, navigate to ${MLFLOW_URL}/#/experiments (hash routing).

Kiali OAuth

Symptom: OpenShift login page shown

Kiali uses OpenShift OAuth — needs kubeadmin credentials (separate from Keycloak). Script auto-discovers from <kubeconfig-dir>/kubeadmin-password.

Overlapping audio

Symptom: Multiple voices playing simultaneously

Cause: Missing timestamps → audio segments placed at wrong positions

Fix: Ensure ALL markStep() calls fire unconditionally. Run validation:

python3 local_experiments/validate-alignment.py

Check for NO TIMESTAMP errors. Fix those first.

Task Tracking

On invocation:

  1. TaskCreate: playwright-demos | <cluster> | ad-hoc | debug | | <issue description>
  2. TaskUpdate when issue is resolved

Related Skills

  • playwright-demo — Main demo recording workflow
  • rossoctl:ui-debug — Debug Rossoctl UI issues
  • k8s:health — Check platform health

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

auth

무료

Authentication and authorization patterns for Rossoctl services

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

Create confidential OAuth2 clients in Keycloak for server-to-service authentication

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

Configure OpenTelemetry Collector with OAuth2 authentication for trace export

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

ci

무료

CI pipeline monitoring, status checks, and PR validation workflows

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

Monitor running CI jobs, wait for completion, create tasks for results

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

rossoctl의 스킬 모두 보기

이 스킬의 문제 신고