1
2 '''
3 Created on 27-Feb-2013
4
5 @authors: Anil Kumar (anilkumar.s@paxterrasolutions.com),
6
7 '''
8 import pexpect
9 import struct, fcntl, os, sys, signal
10 import sys, re
11 sys.path.append("../")
12 from drivers.component import Component
13 from selenium import selenium
14 import unittest, time, re
15
17 '''
18 This will define common functions for CLI included.
19 '''
22
24 '''
25 This will invoke, if the attribute wasn't found the usual ways.
26 Here it will look for assert_attribute and will execute when AttributeError occurs.
27 It will return the result of the assert_attribute.
28 '''
29 try:
30 return getattr(self, name)
31 except AttributeError:
32 try:
33 def experimentHandling(*args):
34 result = self.selenium_method(name,*args)
35 return result
36 return experimentHandling
37 except TypeError,e:
38 main.log.error("Arguments for experimental mode does not have key 'retruns'" + e)
39
41 try :
42 self.logfile_handler.write("\n\t"+name + str(args) +"\n")
43 methodToCall = getattr(vars(self)['driver'], name)
44 result = methodToCall(*args)
45 return main.TRUE
46 except :
47 return main.FALSE
48
50 '''
51 Connection will establish to the remote host using
52 '''
53 for key in connectargs:
54 vars(self)[key] = connectargs[key]
55
56 self.name = self.options['name']
57 try :
58 connect_result = super(WebDriver, self).connect()
59 url = main.componentDictionary[self.name]['url']
60 host = main.componentDictionary[self.name]['host']
61 selenium_port = main.componentDictionary[self.name]['selenium_port']
62 self.driver= selenium(host, int(selenium_port), "*chrome",url)
63 self.driver.start()
64 self.driver.open("/")
65 self.verificationErrors = []
66 main.log.info("Returning from connect "+str(main.TRUE))
67 return main.TRUE
68 except :
69 return main.FALSE
70
72 try :
73 self.driver.click("id=search_submit_btn")
74 self.driver.wait_for_page_to_load("300000")
75 self.wait(10)
76 return main.TRUE
77 except :
78 return main.FALSE
79
81 try :
82 self.driver.click("//html/body/div[2]/div/div[2]/div/table/tbody/tr/td[2]/div/div/div/table/tbody/tr/td[6]/a/img")
83 self.wait(7)
84 self.wait_for_element("id=span_2_12")
85 self.wait(7)
86 return main.TRUE
87 except :
88 try :
89 self.driver.click("//html/body/div[2]/div/div[2]/div/table/tbody/tr/td[2]/div/table/tbody/tr/td[2]/div[2]/div/table/tbody/tr/td[4]/a/span")
90 self.wait(7)
91 self.driver.click("//html/body/div[2]/div/div[2]/div/table/tbody/tr/td[2]/div/div/div/table/tbody/tr/td[6]/a/img")
92 self.wait(7)
93 self.wait_for_element("id=span_2_12")
94 self.wait(7)
95 return main.TRUE
96 except :
97 return main.FALSE
98
100 try :
101 self.driver.click("id=span_2_12")
102 return main.TRUE
103 except :
104 return main.FALSE
105
107 args = utilities.parse_args(["TITLE","PASSENGER_NAME","PASSENGER_AGE","DROP_OFF","EMAIL","PHONE_NUMBER","ID_CARD_NUMBER","ID_CARD_ISSUED","ADDRESS"],**details)
108 try :
109 self.driver.select("id=ticket_title_C3", "label="+args["TITLE"])
110 self.driver.type("id=ticket_passenger_name_C3", args["PASSENGER_NAME"])
111 self.driver.type("id=ticket_passenger_age_C3", args["PASSENGER_AGE"])
112 self.driver.select("id=searchbus_drop_off", "label="+args["DROP_OFF"])
113 self.driver.type("id=ticket_email", args["EMAIL"])
114 self.driver.type("id=ticket_phone_number", args['PHONE_NUMBER'])
115 self.driver.type("id=id_card_number", args['ID_CARD_NUMBER'])
116 self.driver.type("id=id_card_issued_details",args['ID_CARD_ISSUED'] )
117 self.driver.type("id=ticket_address", args['ADDRESS'])
118 self.driver.click("id=terms_conditions")
119 return main.TRUE
120 except :
121 return main.FALSE
122
124 try :
125 self.wait(10)
126 self.driver.click("id=span_2_12")
127 self.driver.stop()
128 return main.TRUE
129 except :
130 return main.FALSE
131
133 main.log.info("Waiting for element "+ element)
134 try :
135 for i in range(60):
136 try:
137 if self.driver.is_element_present(element):
138 break
139 except:
140 pass
141 time.sleep(1)
142 else:
143 main.log.error("Time out : "+element +"Not present")
144 return main.FALSE
145 return main.TRUE
146 except :
147 return main.FALSE
148
149 - def wait(self,secs):
150 main.log.info("Waiting for page to load")
151 time.sleep(secs)
152 return main.TRUE
153
155 main.log.info("Disconnecting from WebDriver")
156
157 main.log.info("Stopping Selenium")
158
159
160 result = main.TRUE
161
162