File tree Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Original file line number Diff line number Diff line change
1
+ Feature : Compose Message
2
+
3
+ @message
4
+ Scenario : Log in to Gmail and compose message
5
+ Given user is on the login page
6
+ When user enters valid username "username" and valid password "valid_password"
7
+ And user is on the inbox page
8
+ When user clicks on the compose button
9
+ And user composes a message
10
+ And user sends message
11
+ Then the message is sent successfully
Original file line number Diff line number Diff line change 6
6
7
7
8
8
class InboxPageElements (object ):
9
- # inbox elements
9
+ # inbox page elements
10
10
11
+ # navbar elements
11
12
ACCOUNT_BUTTON = '#gb > div.gb_pd.gb_Fd.gb_xd.gb_5b > div.gb_wc.gb_Ka.gb_vc.gb_Dd > div > div.gb_Fa.gb_Qc.gb_bg.gb_f.gb_kf > div > a'
12
13
LOGOUT_BUTTON = '#gb_71'
13
14
LOGOUT_LINK = 'https://accounts.google.com/Logout'
14
15
16
+ # message elements
17
+ COMPOSE = '//div[text()="Compose"]'
18
+ RECIPIENT = '#\:87'
19
+ SUBJECT = '#\:7p'
20
+ MESSAGE = '#\:8u'
21
+ SEND = '#\:7f'
22
+
15
23
16
24
class InboxPage (Browser ):
17
25
# inbox actions
18
26
19
27
def get_page_title (self ):
20
28
return self .driver .title
21
29
30
+ def compose_message (self ):
31
+ compose_button = WebDriverWait (self .driver , 1000 ).until (
32
+ EC .presence_of_element_located ((By .XPATH , InboxPageElements .COMPOSE ))
33
+ )
34
+ compose_button .click ()
35
+
36
+ self .driver .find_element_by_css_selector (InboxPageElements .RECIPIENT ).send_keys ('test' )
37
+ self .driver .find_element_by_css_selector (InboxPageElements .SUBJECT ).send_keys ('Test Subject' )
38
+ self .driver .find_element_by_css_selector (InboxPageElements .MESSAGE ).send_keys ('Test Message' )
39
+ self .driver .find_element_by_css_selector (InboxPageElements .SEND ).click ()
40
+
41
+
22
42
def logout (self ):
23
43
account_button = WebDriverWait (self .driver , 1000 ).until (
24
44
EC .presence_of_element_located ((By .CSS_SELECTOR , InboxPageElements .ACCOUNT_BUTTON ))
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 is on the inbox page' )
7
+ def step_impl (context ):
8
+ assert_equal (context .inbox_page .get_page_title (), 'Gmail' )
9
+
10
+
11
+ @when ('user clicks on the compose button' )
12
+ def step_impl (context ):
13
+ context .inbox_page .compose_message ()
14
+
You can’t perform that action at this time.
0 commit comments