File tree Expand file tree Collapse file tree 3 files changed +66
-0
lines changed Expand file tree Collapse file tree 3 files changed +66
-0
lines changed Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
+
Original file line number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments