@startuml package com.iluwatar.pageobject { class AlbumListPage { - ALBUM_LIST_HTML_FILE : String {static} - LOGGER : Logger {static} - PAGE_URL : String {static} - page : HtmlPage + AlbumListPage(webClient : WebClient) + isAt() : boolean + navigateToPage() : AlbumListPage + selectAlbum(albumTitle : String) : AlbumPage } class AlbumPage { - ALBUM_PAGE_HTML_FILE : String {static} - LOGGER : Logger {static} - PAGE_URL : String {static} - page : HtmlPage + AlbumPage(webClient : WebClient) + cancelChanges() : AlbumListPage + changeAlbumRating(albumRating : String) : AlbumPage + changeAlbumTitle(albumTitle : String) : AlbumPage + changeAlbumYear(year : int) : AlbumPage + changeArtist(artist : String) : AlbumPage + changeNumberOfSongs(numberOfSongs : int) : AlbumPage + isAt() : boolean + navigateToPage() : AlbumPage + saveChanges() : AlbumPage } class LoginPage { - LOGGER : Logger {static} - LOGIN_PAGE_HTML_FILE : String {static} - PAGE_URL : String {static} - page : HtmlPage + LoginPage(webClient : WebClient) + enterPassword(password : String) : LoginPage + enterUsername(username : String) : LoginPage + isAt() : boolean + login() : AlbumListPage + navigateToPage() : LoginPage } abstract class Page { + AUT_PATH : String {static} # webClient : WebClient + Page(webClient : WebClient) + isAt() : boolean {abstract} } } AlbumListPage --|> Page AlbumPage --|> Page LoginPage --|> Page @enduml