Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit aa53e74

Browse files
committed
add settings page object and folder feature/steps
1 parent ab70441 commit aa53e74

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

features/folder.feature

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Feature: Folders
2+
3+
@new_folder
4+
Scenario: Log in to Gmail and add a folder from the settings page
5+
Given user successfully logs in with valid username "username" and valid password "valid_password" and is on the inbox page
6+
And user navigates to the settings page
7+
When user adds a folder with name "Test Folder"
8+
Then a folder is successfully created

features/pages/settings_page.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from selenium.webdriver.common.by import By
2+
from selenium.webdriver.common.keys import Keys
3+
from selenium.webdriver.support import expected_conditions as EC
4+
from selenium.webdriver.support.wait import WebDriverWait
5+
6+
from features.browser import Browser
7+
8+
9+
class SettingsPageElements(object):
10+
11+
# folder elements
12+
ADD_FOLDER = '#\:qx'
13+
FOLDER_NAME = '#\:pt\.na'
14+
FOLDER_SUBMIT = 'body > div.Kj-JD > div.Kj-JD-Jl > button.J-at1-auR'
15+
FOLDER_SUCCESS = 'body > div:nth-child(18) > div.nH > div > div.nH.w-asV.aiw > div:nth-child(6) > div.no > div > div:nth-child(3) > div > div > div.vh > span > span'
16+
17+
# settings elements
18+
SETTINGS_TITLE = '#\:4 > div > div.nH.qZ.G-atb > div.du > h2'
19+
SETTINGS_LINK = 'https://mail.google.com/mail/u/0/#settings/labels'
20+
21+
22+
class SettingsPage(Browser):
23+
24+
def navigate_to_settings(self):
25+
self.driver.get(SettingsPageElements.SETTINGS_LINK)
26+
27+
def create_folder(self, name):
28+
create_folder_button = self.driver.find_element_by_css_selector(SettingsPageElements.ADD_FOLDER)
29+
create_folder_button.click()
30+
31+
self.driver.find_element_by_css_selector(SettingsPageElements.FOLDER_NAME).send_keys(name)
32+
self.driver.find_element_by_xpath(SettingsPageElements.FOLDER_SUBMIT).click()
33+
34+
def folder_success(self):
35+
self.driver.find_element_by_css_selector(SettingsPageElements.FOLDER_SUCCESS)
36+

features/steps/folder_steps.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from behave import *
2+
from nose.tools import assert_equal, assert_true
3+
4+
5+
# if title is 'Inbox' then user is on the inbox page
6+
@step('user navigates to the settings page')
7+
def step_impl(context):
8+
context.settings_page.navigate_to_settings()
9+
10+
11+
@when('user adds a folder with name "{name}"')
12+
def step_impl(context, name):
13+
context.settings_page.create_folder(name)
14+
15+
16+
@then('a folder is successfully created')
17+
def step_impl(context):
18+
assert_true(context.settings_page.folder_success())
19+
20+
21+
22+

0 commit comments

Comments
 (0)