-
Notifications
You must be signed in to change notification settings - Fork 0
/
TC-02.py
114 lines (104 loc) · 5.06 KB
/
TC-02.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
class TestCase(unittest.TestCase):
def login(self):
self.chrome.find_elements(By.XPATH, "//*[@class='css-foh633']")[0].send_keys(self.email)
self.chrome.find_elements(By.XPATH, "//*[@class='css-foh633']")[1].send_keys(self.password)
self.chrome.find_element(By.XPATH, "//*[@class='css-2960tt']").click()
def setUp(self):
self.login_url = "http://127.0.0.1:3000/keystone/signin"
self.email = "[email protected]"
self.password = "demo"
self.chrome = webdriver.Chrome('./chromedriver')
self.chrome.get(self.login_url)
self.chrome.maximize_window()
time.sleep(1)
self.login()
time.sleep(1)
def tearDown(self):
self.chrome.find_element(By.XPATH, "//*[@data-list-path='posts']/a").click()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@placeholder='Search']").clear()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@placeholder='Search']").send_keys("test")
time.sleep(1)
self.chrome.find_element(By.XPATH, "//tr[1]/td[1]").click()
self.chrome.find_element(By.XPATH, "//*[@data-button-type='confirm']").click()
time.sleep(1)
self.chrome.quit()
def create_new_post(self):
self.chrome.find_element(By.XPATH, "//li[@data-section-label='Posts']").click()
time.sleep(1)
if(len(self.chrome.find_elements(By.XPATH, "//*[@type='button']"))==1):
self.chrome.find_element(By.XPATH, "//*[@type='button']").click()
else:
self.chrome.find_element(By.XPATH, "//*[@title='Create Post']").click()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@class='FormField__inner field-size-full']/input").send_keys("test")
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@data-button-type='submit']").click()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@data-list-path='posts']/a").click()
time.sleep(1)
def verify_success_message(self):
expect = "Your changes have been saved successfully"
result = self.chrome.find_element(By.XPATH, "//*[@data-alert-type='success']").text
self.assertEqual(expect, result)
time.sleep(1)
def verify_edited_post_in_postlist(self):
self.chrome.find_element(By.XPATH, "//*[@data-list-path='posts']/a").click()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@placeholder='Search']").clear()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@placeholder='Search']").send_keys("test")
time.sleep(1)
title = "test"
result = self.chrome.find_element(By.XPATH, "//tr[1]/td[2]/a").text
self.assertEqual(title, result)
status = "Published"
result = self.chrome.find_element(By.XPATH, "//tr[1]/td[3]/div").text
self.assertEqual(status, result)
author = "Demo User"
result = self.chrome.find_element(By.XPATH, "//tr[1]/td[4]/a").text
self.assertEqual(author, result)
def edit_post(self):
# title
self.chrome.find_element(By.XPATH, "//*[@placeholder='Name']").clear()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@placeholder='Name']").send_keys("test")
time.sleep(1)
# state
self.chrome.find_elements(By.XPATH, "//*[@class='Select-control']")[0].click()
time.sleep(1)
self.chrome.find_elements(By.XPATH, "//*[contains(@aria-activedescendant, 'react-select')]")[0].send_keys("Published")
time.sleep(1)
self.chrome.find_elements(By.XPATH, "//*[contains(@aria-activedescendant, 'react-select')]")[0].send_keys(Keys.ENTER)
time.sleep(1)
# author
self.chrome.find_elements(By.XPATH, "//*[@class='Select-control']")[1].click()
time.sleep(1)
self.chrome.find_elements(By.XPATH, "//*[contains(@aria-activedescendant, 'react-select')]")[1].send_keys("Demo User")
time.sleep(1)
self.chrome.find_elements(By.XPATH, "//*[contains(@aria-activedescendant, 'react-select')]")[1].send_keys(Keys.ENTER)
time.sleep(1)
# save
self.chrome.find_element(By.XPATH, "//*[@data-button='update']").click()
time.sleep(1)
self.verify_success_message()
self.verify_edited_post_in_postlist()
def test_verify_TC_02(self):
self.create_new_post()
self.chrome.find_element(By.XPATH, "//li[@data-section-label='Posts']").click()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@placeholder='Search']").clear()
time.sleep(1)
self.chrome.find_element(By.XPATH, "//*[@placeholder='Search']").send_keys("test")
time.sleep(1)
self.chrome.find_element(By.XPATH, "//tr[1]/td[2]/a").click()
time.sleep(1)
self.edit_post()
unittest.TestLoader().loadTestsFromTestCase(TestCase)
unittest.main(verbosity=2)