Skip to content

Commit 407273c

Browse files
committed
orginize structure
1 parent c8c52f6 commit 407273c

File tree

19 files changed

+203
-181
lines changed

19 files changed

+203
-181
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.idea/*
2+
*__pycache__*

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

__init__.py

Whitespace-only changes.

locators.py

Lines changed: 0 additions & 17 deletions
This file was deleted.

pages.py

Lines changed: 0 additions & 66 deletions
This file was deleted.

pages/__init__.py

Whitespace-only changes.

base.py renamed to pages/base.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
1-
from selenium import webdriver
2-
from selenium.webdriver.common.by import By
31
from selenium.webdriver.common.action_chains import ActionChains
42

5-
# this Base class is serving basic attributes for every single page inherited from Page class
63

4+
# this Base class is serving basic attributes for every single page inherited from Page class
75
class Page(object):
8-
def __init__(self, driver, base_url='http://www.app.com/'):
6+
def __init__(self, driver, base_url='http://www.amazon.com/'):
97
self.base_url = base_url
108
self.driver = driver
119
self.timeout = 30
12-
10+
1311
def find_element(self, *locator):
1412
return self.driver.find_element(*locator)
15-
16-
def open(self,url):
13+
14+
def open(self, url):
1715
url = self.base_url + url
1816
self.driver.get(url)
19-
17+
2018
def get_title(self):
2119
return self.driver.title
22-
20+
2321
def get_url(self):
2422
return self.driver.current_url
25-
23+
2624
def hover(self, *locator):
2725
element = self.find_element(*locator)
2826
hover = ActionChains(self.driver).move_to_element(element)

pages/home_page.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from pages.base import Page
2+
3+
4+
class HomePage(Page):
5+
pass

pages/login_page.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from utils.locators import *
2+
from pages.base import Page
3+
from utils import users
4+
5+
6+
class LoginPage(Page):
7+
def __init__(self, driver):
8+
self.locator = LoginPageLocators
9+
super(LoginPage, self).__init__(driver) # Python2 version
10+
11+
def enter_email(self, email):
12+
self.find_element(*self.locator.EMAIL).send_keys(email)
13+
14+
def enter_password(self, password):
15+
self.find_element(*self.locator.PASSWORD).send_keys(password)
16+
17+
def click_login_button(self):
18+
self.find_element(*self.locator.SUBMIT).click()
19+
20+
def login(self, user):
21+
user = users.get_user(user)
22+
print(user)
23+
self.enter_email(user["email"])
24+
self.enter_password(user["password"])
25+
self.click_login_button()
26+
27+
def login_with_valid_user(self, user):
28+
self.login(user)
29+
return HomePage(self.driver)
30+
31+
def login_with_in_valid_user(self, user):
32+
self.login(user)
33+
return self.find_element(*self.locator.ERROR_MESSAGE).text

pages/main_page.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from selenium.webdriver.common.keys import Keys
2+
from pages.base import Page
3+
from utils.locators import *
4+
5+
6+
# Page objects are written in this module.
7+
# Depends on the page functionality we can have more functions for new classes
8+
9+
class MainPage(Page):
10+
def __init__(self, driver):
11+
self.locator = MainPageLocators
12+
super().__init__(driver) # Python3 version
13+
14+
def check_page_loaded(self):
15+
return True if self.find_element(*self.locator.LOGO) else False
16+
17+
def search_item(self, item):
18+
self.find_element(*self.locator.SEARCH).send_keys(item)
19+
self.find_element(*self.locator.SEARCH).send_keys(Keys.ENTER)
20+
return self.find_element(*self.locator.SEARCH_LIST).text
21+
22+
def click_sign_up_button(self):
23+
self.find_element(*self.locator.SIGNUP).click()
24+
return SignUpPage(self.driver)
25+
26+
def click_sign_in_button(self):
27+
self.find_element(*self.locator.LOGIN).click()
28+
return LoginPage(self.driver)

0 commit comments

Comments
 (0)