údržba
This commit is contained in:
0
Playwright základy na GitHub/tests/alerts.spec.ts
Normal file
0
Playwright základy na GitHub/tests/alerts.spec.ts
Normal file
27
Playwright základy na GitHub/tests/assertions.spec.ts
Normal file
27
Playwright základy na GitHub/tests/assertions.spec.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
//pokud zapíšeme za test.only spustíme pouze jeden tento test
|
||||
test('Element state', async ({ page }) => {
|
||||
await page.goto('https://www.saucedemo.com');
|
||||
|
||||
//Vypíšeme zda stav elementu jestli je viditelný
|
||||
await expect(page.locator('#user-name')).toBeVisible();
|
||||
//await expect(page.locator('#user-name')).toContain;
|
||||
|
||||
//Vypíšeme zda stav elementu jestli je editovatelný
|
||||
await expect(page.locator('#password')).toBeEditable();
|
||||
|
||||
//Vypíšeme zda stav elementu jestli je na stránce jedenkrát (to je číslo 1 v závorce)
|
||||
await expect(page.locator('#login-button')).toHaveCount(1);
|
||||
|
||||
//Ověří že se některý element na stránce nenáchází. Přesný opak to.BeVisible. Na stránce by se neměl nacházet tento element
|
||||
await expect(page.locator('#skillmea')).not.toBeVisible();
|
||||
|
||||
});
|
||||
|
||||
// toto je idetifikovatelný element -- > await page.locator('#user-name')
|
||||
// Pokud nám test někde padá nebo chci případně přeskočit místo kde padl použiji .soft v tomto místě přeskočí chybu a pkračuje dál
|
||||
// await expect.soft(page.locator('#password'))not.toBeEditable();
|
||||
|
||||
// seznam všech asertů můžeš získat že za tešku vložím .toBeHave nebou .toBeContain
|
||||
//await expect(page.locator('#user-name')).toContain;
|
18
Playwright základy na GitHub/tests/elementState.spec.ts
Normal file
18
Playwright základy na GitHub/tests/elementState.spec.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
//pokud zapíšeme za test.only spustíme pouze jeden tento test
|
||||
test('Element state', async ({ page }) => {
|
||||
await page.goto('https://www.saucedemo.com');
|
||||
|
||||
//Vypíšeme zda stav elementu jestli je editovatelný
|
||||
console.log(await page.locator('#user-name').isEditable());
|
||||
|
||||
//Vypíšeme zda stav elementu jestli je viditelný
|
||||
console.log(await page.locator('#password').isVisible());
|
||||
|
||||
//Vypíšeme zda stav elementu jestli je skrytý
|
||||
console.log(await page.locator('#login-button').isHidden());
|
||||
|
||||
|
||||
|
||||
});
|
18
Playwright základy na GitHub/tests/example.spec copy.ts
Normal file
18
Playwright základy na GitHub/tests/example.spec copy.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
test('has title', async ({ page }) => {
|
||||
await page.goto('https://playwright.dev/');
|
||||
|
||||
// Expect a title "to contain" a substring.
|
||||
await expect(page).toHaveTitle(/Playwright/);
|
||||
});
|
||||
|
||||
test('get started link', async ({ page }) => {
|
||||
await page.goto('https://playwright.dev/');
|
||||
|
||||
// Click the get started link.
|
||||
await page.getByRole('link', { name: 'Get started' }).click();
|
||||
|
||||
// Expects the URL to contain intro.
|
||||
await expect(page).toHaveURL(/.*intro/);
|
||||
});
|
18
Playwright základy na GitHub/tests/example.spec.ts
Normal file
18
Playwright základy na GitHub/tests/example.spec.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
test('has title', async ({ page }) => {
|
||||
await page.goto('https://playwright.dev/');
|
||||
|
||||
// Expect a title "to contain" a substring.
|
||||
await expect(page).toHaveTitle(/Playwright/);
|
||||
});
|
||||
|
||||
test('get started link', async ({ page }) => {
|
||||
await page.goto('https://playwright.dev/');
|
||||
|
||||
// Click the get started link.
|
||||
await page.getByRole('link', { name: 'Get started' }).click();
|
||||
|
||||
// Expects the URL to contain intro.
|
||||
await expect(page).toHaveURL(/.*intro/);
|
||||
});
|
29
Playwright základy na GitHub/tests/home.spec.ts
Normal file
29
Playwright základy na GitHub/tests/home.spec.ts
Normal file
@ -0,0 +1,29 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import { LoginPage } from '../page-objects/LoginPage';
|
||||
import { HomePage } from '../page-objects/HomePage';
|
||||
|
||||
// přihlášení na HomePage a ověření textu domovské stránky.
|
||||
test('Verify home title', async ({ page }) => {
|
||||
const loginPage = new LoginPage(page);
|
||||
const homePage = new HomePage(page);
|
||||
await loginPage.gotoLoginPage();
|
||||
await loginPage.login();
|
||||
await expect(homePage.title).toBeVisible();
|
||||
});
|
||||
|
||||
// test přidání produktu do košíku a kontrola že zobrazuje 1 položka v košíku
|
||||
test('Verify add to card functionality', async ({ page }) => {
|
||||
const loginPage = new LoginPage(page);
|
||||
const homePage = new HomePage(page);
|
||||
await loginPage.gotoLoginPage();
|
||||
await loginPage.login();
|
||||
await homePage.clickOnAddToCart();
|
||||
await expect(homePage.cardBadge).toHaveText("1");
|
||||
});
|
||||
|
||||
//Odstranit produkt z košíká zkontrolovat že v něm není
|
||||
|
||||
//vytvořit novou třídu pro produkt page, identifikovat elementy, napsat test na přidání do košíku product page, kliknutína tlačítko back ověřím že se dostanu zpět na homePage
|
||||
|
||||
|
||||
|
79
Playwright základy na GitHub/tests/login.spec.ts
Normal file
79
Playwright základy na GitHub/tests/login.spec.ts
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
Zápis pomocí Page_Objects --> je kratší, čitatelnější a přehlednější. Pokud se například změní lokátor id nemusím ho měnit ve všech testech
|
||||
ale, v daném page-objects
|
||||
ctrl + click mě přesune na zadanou metodu!!
|
||||
*/
|
||||
import { test, expect } from '@playwright/test';
|
||||
//Importujeme vytvořenou třídu z page-objects
|
||||
import { LoginPage } from '../page-objects/LoginPage';
|
||||
|
||||
test('Successful login', async ({ page }) => {
|
||||
// nová instance loginPage odkazuje na metody co jsme si vytvořili v LoginPage
|
||||
const loginPage = new LoginPage(page);
|
||||
// zadáme metody co jsme vytvořily v LoginPage
|
||||
await loginPage.gotoLoginPage();
|
||||
// místo tohoto použijeme námi vytvořenou metodu login z LoginPage
|
||||
//await loginPage.enterValidUsername();
|
||||
//await loginPage.enterValidPassword();
|
||||
//await loginPage.clickLoginButton();
|
||||
// metoda login
|
||||
await loginPage.login();
|
||||
// ověříme že jsme se úspěšně přihlásily
|
||||
await expect(page).toHaveURL('https://www.saucedemo.com/inventory.html');
|
||||
/*
|
||||
// způsob jeden test komplet v kódu bez odkazu na page-objects
|
||||
await page.goto('https://www.saucedemo.com/');
|
||||
await page.locator('[data-test="username"]').click();
|
||||
await page.locator('[data-test="username"]').fill('standard_user');
|
||||
await page.locator('[data-test="password"]').click();
|
||||
await page.locator('[data-test="password"]').fill('secret_sauce');
|
||||
await page.locator('[data-test="login-button"]').click();
|
||||
|
||||
// Zkontrolujeme jestli na stránce je viditelný Swag Labs
|
||||
await expect(page.getByText('Swag Labs')).toBeVisible();
|
||||
*/
|
||||
});
|
||||
|
||||
// test přihlášení s neplatným heslem
|
||||
test('Cannot login with valid username and invalid password', async ({ page }) => {
|
||||
// test reporty(video 23):
|
||||
|
||||
const loginPage = new LoginPage(page);
|
||||
await loginPage.gotoLoginPage();
|
||||
await loginPage.enterValidUsername();
|
||||
await loginPage.enterInvalidPassword();
|
||||
await loginPage.clickLoginButton();
|
||||
await expect(loginPage.invalidCredentialsErrorMessage).toBeVisible();
|
||||
});
|
||||
|
||||
|
||||
//test s neplatným přihlašovacím jménem
|
||||
test('Cannot login with invalid username and valid password', async ({ page }) => {
|
||||
const loginPage = new LoginPage(page);
|
||||
await loginPage.gotoLoginPage();
|
||||
await loginPage.enterInvalidUsername();
|
||||
await loginPage.enterValidPassword();
|
||||
await loginPage.clickLoginButton();
|
||||
await expect(loginPage.invalidCredentialsErrorMessage).toBeVisible();
|
||||
|
||||
});
|
||||
|
||||
//test pouze s kliknutím na login button
|
||||
test('Cannot login with blank fields', async ({ page }) => {
|
||||
const loginPage = new LoginPage(page);
|
||||
await loginPage.gotoLoginPage();
|
||||
await loginPage.clickLoginButton();
|
||||
await expect(loginPage.requiredCredentialsErrorMassage).toBeVisible();
|
||||
|
||||
});
|
||||
|
||||
// přihlášení s zablokovaným userem
|
||||
test('Cannot login with locked out user', async ({ page }) => {
|
||||
const loginPage = new LoginPage(page);
|
||||
await loginPage.gotoLoginPage();
|
||||
await loginPage.enterLockedOutUser();
|
||||
await loginPage.enterValidPassword();
|
||||
await loginPage.clickLoginButton();
|
||||
await expect(loginPage.lockedOutErrorMassage).toBeVisible();
|
||||
|
||||
});
|
0
Playwright základy na GitHub/tests/tabs.spec.ts
Normal file
0
Playwright základy na GitHub/tests/tabs.spec.ts
Normal file
0
Playwright základy na GitHub/tests/upload.spec.ts
Normal file
0
Playwright základy na GitHub/tests/upload.spec.ts
Normal file
Reference in New Issue
Block a user