-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_selenium.py
128 lines (99 loc) · 4.54 KB
/
test_selenium.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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# -*- coding: utf-8 -*-
import unittest
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
#from pyunitreport import HTMLTestRunner
#Chrome version 73.0.3683.86, ChromeDriver 73.0.3683.68
#Firefox version:58, Driver version:geckodriver24.0
#IE version:11, IEDriverServer_x64_3.14.0
#Driver should put in the path of python3.6 or python2.7
class RegisterTestCase(unittest.TestCase):
def setUp(self):
chrome_options = Options()
chrome_options.add_argument("--headless")
self.driver = webdriver.Chrome(chrome_options=chrome_options)
self.driver.get('https://gmod-stage.nal.usda.gov/register/project-dataset/account')
print('Test:https://gmod-stage.nal.usda.gov/register/project-dataset/account')
#namespace must be test....
def test_register(self):
driver=self.driver
name_element = driver.find_element_by_name("name")
name_element.send_keys("Test_Robot_stage_register")
print ('name_done')
mail_element = driver.find_element_by_xpath("//*[@id='edit-email']")
mail_element.send_keys("[email protected]")
print ('email_done')
subject_element = driver.find_element_by_name("affiliation")
subject_element.send_keys("Test_Robot_stage_register")
print ('Affiliation_done')
message_element = driver.find_element_by_name("content")
message_element.send_keys("Automated_Testing_stage_register")
print ('Contact_done')
#Math question
text=driver.find_element_by_xpath("//*[@id='project-dataset-submission-account']/div/div[6]/div").text
question=str(text)
number=[]
print (text)
for n in question.split():
if n.isdigit():
number.append(n)
answer=int(number[0])+int(number[1])
answer_field = driver.find_element_by_name("captcha_response")
answer_field.send_keys(answer)
print (answer)
print ('Math_done')
#click button
submit_button = driver.find_element_by_xpath("//*[@id='edit-submit']")
submit_button.click()
#Get error message
success_message=driver.find_element_by_xpath("/html/body/div[2]/div/div/div[1]").text
print (success_message.encode('utf-8'))
def tearDown(self):
self.driver.quit()
class ContactTestCase(unittest.TestCase):
def setUp(self):
chrome_options = Options()
chrome_options.add_argument("--headless")
self.driver = webdriver.Chrome(chrome_options=chrome_options)
self.driver.get('https://gmod-stage.nal.usda.gov/contact')
print('Test:https://gmod-stage.nal.usda.gov/contact')
#namespace must be test....
def test_contact(self):
driver=self.driver
name_element = driver.find_element_by_name("name")
name_element.send_keys("Test_Robot_stage_contact")
print ('name_done')
mail_element = driver.find_element_by_xpath("//*[@id='edit-mail']")
mail_element.send_keys("[email protected]")
print ('email_done')
subject_element = driver.find_element_by_xpath("//*[@id='edit-subject']")
subject_element.send_keys("Test_Robot_stage_contact")
print ('Subject_done')
message_element = driver.find_element_by_xpath("//*[@id='edit-message']")
message_element.send_keys("Automated_Testing_stage_contact")
print ('Message_done')
#Math question
text=driver.find_element_by_xpath("//*[@id='contact-site-form']/div/div[5]/div").text
print (text)
question=str(text)
number=[]
for n in question.split():
if n.isdigit():
number.append(n)
answer=int(number[0])+int(number[1])
answer_field = driver.find_element_by_name("captcha_response")
answer_field.send_keys(answer)
print (answer)
print ('Math_done')
#click button
submit_button = driver.find_element_by_xpath("//*[@id='edit-submit']")
submit_button.click()
#success message i5k:contact:"/html/body/div[2]/div/section/div[2]"
success_message=driver.find_element_by_xpath("/html/body/div[2]/div/section/div[3]").text
print (success_message.encode('utf-8'))
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()