typescript - Playwright teszt nem tölti be a helyi URL-t
Problémáim vannak az alkalmazásom kezdőlapjának betöltésével, bár úgy gondolom, hogy minden helyesen van konfigurálva. A teszt és a Playwright konfiguráció a következő:
example.spec.ts
import { test, expect, chromium } from '@playwright/test;
test('Visit Pages', async ({ page }) => {
await page.goto('https://playwright.dev/') -- this works
await page.goto('http://localhost:3000/'); -- this does not work
//this doesn't work either
await page.goto('http://localhost:3000/', {
waitUntil: 'domcontentloaded',
timeout: 60000,
});
...
}
playwright.config.ts
import { defineConfig, devices } from '@playwright/test'
export default defineConfig {
testDir: 'tests',
//also added in headless false but no difference
headless: false,
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: 'html',
use: {
baseURL: 'http://localhost:3000',
storageState: './state.json'
trace: 'on-first-retry',
},
// Configure projects for major browsers.
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
{
name: 'Google Chrome',
use: { ...devices['Desktop Chrome'], channel: 'chrome' },
},
],
// Run your local dev server before starting the tests.
webServer: {
command: 'yarn dev',
url: 'http://localhost:3000',
reuseExistingServer: true,
},
}
A webszervert feltettem és működik, szóval nem tudom, miért nem töltődik be úgy, ahogy kellene.
Mielőtt futtatnám a yarn playwright test --ui parancsot, megbizonyosodom róla, hogy az alkalmazás fut, és elindítom a webSzervert/front-endet. Ellenőriztem, hogy a kezdőlapot el tudom érni a szokásos Google Chrome-on, valamint a back-end végpontokat a Postman-ben... Ami egy másik Playwright tesztben tényleg működik. De a problémám az, hogy az oldal egyszerűen nem tölt be semmit, csak egy üres képernyőt látok egy betöltő körrel. Arra van szükségem, hogy betöltődjön, hogy elkezdhessek interakcióba lépni az elemekkel, például a szövegmezőkkel.
Még mindig nem vagyok jártas a TypeScriptben, és bár a Cypress-szel már ismerős vagyok, ez a Playwright beállítás az alapvető dolgokhoz teljesen összezavar.
Válasz #1
Úgy gondolom, hogy bármely olyan elem láthatóságának ellenőrzése, amely a lap betöltése után látható, hasznos lesz, például a kezdőlap tipikus üdvözlő szövegét ellenőrizni lehet.
Ez akkor történik, amikor a Playwright, mivel nagyon gyors, befejezi és elbukik a teszt a lap betöltődése előtt.
await page.goto('http://localhost:3000/')
await expect(page.getByText('Welcome')).toBeVisible()
Egy webes állítást, mint a toBeVisible, használva várakozik, amíg az elem láthatóvá válik, ami ebben a helyzetben hasznos.
