Skip to main content

Overview

The LoginPage class encapsulates the login page functionality for the SauceDemo application. It provides methods to navigate to the login page and perform authentication.

Initialization

from pages.login import LoginPage
from playwright.sync_api import Page

login_page = LoginPage(page)
page
Page
required
Playwright Page object for browser interaction

Locators

The LoginPage class defines the following locators:
LocatorSelectorDescription
username_input[data-test="username"]Username input field
password_input[data-test="password"]Password input field
login_button[data-test="login-button"]Login submit button

Methods

Navigates to the SauceDemo login page.
login_page = LoginPage(page)
login_page.navigate()
Returns: None

login(username, password)

Performs login by filling in credentials and clicking the login button.
login_page.login("standard_user", "secret_sauce")
username
str
required
The username for authentication
password
str
required
The password for authentication
Returns: None

Usage Examples

Basic Login Flow

from pages.login import LoginPage

def test_successful_login(page):
    login_page = LoginPage(page)
    login_page.navigate()
    login_page.login("standard_user", "secret_sauce")
    
    assert page.get_by_test_id("title").is_visible

Login with Environment Variables

def test_login_with_env_vars(page, creds):
    login_page = LoginPage(page)
    login_page.navigate()
    login_page.login(creds["valid_user"], creds["pwd"])
    
    assert page.get_by_test_id("title").is_visible

Login with Test Data

def test_with_testdata(page, users):
    login_page = LoginPage(page)
    login_page.navigate()
    login_page.login(users["validUser"]["username"], users["validUser"]["password"])
    
    assert page.get_by_test_id("title").is_visible

Source Code

Location: /home/daytona/workspace/source/pages/login.py:4

Build docs developers (and LLMs) love