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

Skip to content

Commit 08ae495

Browse files
committed
add compose message steps
1 parent 5c548f7 commit 08ae495

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

features/compose_message.feature

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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

features/pages/inbox_page.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,39 @@
66

77

88
class InboxPageElements(object):
9-
# inbox elements
9+
# inbox page elements
1010

11+
# navbar elements
1112
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'
1213
LOGOUT_BUTTON = '#gb_71'
1314
LOGOUT_LINK = 'https://accounts.google.com/Logout'
1415

16+
# message elements
17+
COMPOSE = '//div[text()="Compose"]'
18+
RECIPIENT = '#\:87'
19+
SUBJECT = '#\:7p'
20+
MESSAGE = '#\:8u'
21+
SEND = '#\:7f'
22+
1523

1624
class InboxPage(Browser):
1725
# inbox actions
1826

1927
def get_page_title(self):
2028
return self.driver.title
2129

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+
2242
def logout(self):
2343
account_button = WebDriverWait(self.driver, 1000).until(
2444
EC.presence_of_element_located((By.CSS_SELECTOR, InboxPageElements.ACCOUNT_BUTTON))

features/steps/inbox_steps.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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+

0 commit comments

Comments
 (0)