Practice
1. What is the main purpose of E2E testing with Playwright in a Svelte app?
easy
Solution
Step 1: Understand E2E testing purpose
E2E testing simulates real user actions to verify the whole app works correctly.Step 2: Role of Playwright in E2E testing
Playwright automates browsers to perform user-like actions and check results automatically.Final Answer:
To test the app from the user's point of view by automating browser actions -> Option AQuick Check:
E2E testing = user perspective automation [OK]
Hint: E2E tests mimic user actions in a real browser [OK]
Common Mistakes:
- Confusing E2E with unit or API testing
- Thinking E2E tests run only backend checks
- Assuming manual testing is E2E automation
2. Which of the following is the correct way to launch a browser and open a page in Playwright for a Svelte app test?
easy
Solution
Step 1: Correct Playwright browser launch syntax
Playwright requires launching the browser first with await playwright.chromium.launch().Step 2: Creating a new page from the browser
After launching, create a new page with await browser.newPage().Final Answer:
const browser = await playwright.chromium.launch(); const page = await browser.newPage(); -> Option DQuick Check:
Launch browser then open page [OK]
Hint: Launch browser first, then create page with await [OK]
Common Mistakes:
- Calling newPage() before launching browser
- Missing await causing promise errors
- Mixing order of browser and page creation
3. Given this Playwright test snippet for a Svelte app:
What will be logged if clicking the button updates the div#result to 'Success'?
await page.goto('http://localhost:3000');
await page.click('button#submit');
const text = await page.textContent('div#result');
console.log(text);What will be logged if clicking the button updates the div#result to 'Success'?
medium
Solution
Step 1: Understand page.goto and click
The test navigates to the page and clicks the button with id 'submit'.Step 2: Check textContent after click
Click updates div#result text to 'Success', so textContent returns 'Success'.Final Answer:
'Success' -> Option CQuick Check:
Click updates text, so textContent = 'Success' [OK]
Hint: Click updates text, textContent reads updated text [OK]
Common Mistakes:
- Assuming textContent returns undefined if element exists
- Not waiting for page navigation or updates
- Confusing selector syntax causing errors
4. Identify the error in this Playwright test code for a Svelte app:
Why might this test fail even if the button click works?
await page.goto('http://localhost:3000');
await page.click('button.submit');
await expect(page.locator('div#result')).toHaveText('Success');Why might this test fail even if the button click works?
medium
Solution
Step 1: Check selector correctness
'button.submit' selects a button with class 'submit', but if button has id 'submit', selector should be 'button#submit'.Step 2: Verify assertion and syntax
expect with toHaveText on page.locator is valid syntax in Playwright.Final Answer:
The selector 'button.submit' is incorrect if the button has id 'submit', not class 'submit' -> Option AQuick Check:
Selector must match element attribute type [OK]
Hint: Match selector type: # for id, . for class [OK]
Common Mistakes:
- Using class selector when element has id
- Missing await on async calls
- Misunderstanding Playwright assertion syntax
5. You want to write a Playwright test for a Svelte app that fills a form with name and email, submits it, and checks for a success message. Which sequence of actions is correct?
hard
Solution
Step 1: Fill form fields before submitting
Fill the name and email inputs first to provide data.Step 2: Click submit and check success message
After filling, click submit button, then assert the success message appears.Final Answer:
Fill inputs, click submit, then check message -> Option BQuick Check:
Fill before submit, then assert success [OK]
Hint: Fill inputs first, then submit, then check result [OK]
Common Mistakes:
- Clicking submit before filling inputs
- Checking success message before submit
- Filling inputs after submit
