TiledViz
Loading...
Searching...
No Matches
test_gui.py
1"""
2Test TiledViz with Selenium
3"""
4
5import unittest
6import os,sys,time
7import logging
8
9os.chdir("/tmp/tests")
10
11# from pyvirtualdisplay import Display
12
13from selenium import webdriver
14from selenium.common.exceptions import NoSuchElementException
15from selenium.webdriver.common.keys import Keys
16from selenium.webdriver.support.ui import Select
17from selenium.webdriver.common.action_chains import ActionChains
18from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener
19from selenium.webdriver.common.by import By
20from selenium.webdriver.support.ui import WebDriverWait
21from selenium.webdriver.support import expected_conditions as EC
22
23#os.system("ls -la /usr/local/Selenium/")
24
25#logging.getLogger().setLevel(logging.INFO)
26
27# display = Display(visible=0, size=(1920, 1080))
28# display.start()
29
30# Wait Nsec after each call
31Nsec = 4
32
33# Save screenshots
34SaveScreenshotBool=False
35
36class MyListener(AbstractEventListener):
37 global Nsec
38 def before_navigate_to(self, url, driver):
39 print("Before navigate to %s" % url)
40 def after_navigate_to(self, url, driver): #.get(self.URL)
41 time.sleep(Nsec)
42 print("After navigate to %s" % url)
43 def after_click(self, url, driver):
44 time.sleep(Nsec)
45 print("After click to %s" % url)
46
47
48class TestTemplate(unittest.TestCase):
49 """Include test cases on a given url"""
50
51 URL = 'http://flaskdock:5000'
52
53 def setUp(self):
54 """Start web driver"""
55 chrome_options = webdriver.ChromeOptions()
56 chrome_options.add_argument('--no-sandbox')
57 chrome_options.add_argument('--headless')
58 chrome_options.add_argument('--disable-gpu')
59 chrome_options.add_argument('--enable-logging')
60 chrome_options.add_argument('--enable-offline-auto-reload')
61 chrome_options.add_argument('--enable-offline-auto-reload-visible-only')
62 chrome_options.add_argument('--num-raster-threads=4')
63 chrome_options.add_argument('--enable-main-frame-before-activation')
64 chrome_options.add_argument('--enable-compositor-image-animations')
65
66 chrome_options.add_experimental_option('prefs', {
67 'download.default_directory': os.getcwd(),
68 'download.prompt_for_download': False,
69 })
70
71 # logging.info('Prepared chrome options..')
72 self.driver = webdriver.Chrome(options=chrome_options)
73
74 # firefox_profile = webdriver.FirefoxProfile()
75 # firefox_profile.set_preference('browser.download.folderList', 2)
76 # firefox_profile.set_preference('browser.download.manager.showWhenStarting', False)
77 # firefox_profile.set_preference('browser.download.dir', os.getcwd())
78 # firefox_profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv')
79
80 # # firefox_profile.set_preference("general.useragent.override", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1")
81 # # firefox_profile.set_preference("webdriver.log.file", "webdriver.log")
82
83 # logging.info('Prepared firefox profile..')
84
85 # self.driver = webdriver.Firefox(firefox_profile=firefox_profile)
86
87 self.driver.implicitly_wait(20)
88 self.driver.set_window_size(1920, 1080)
89 self.driver.maximize_window()
90
91 # zoomAction = ActionChains(self.driver)
92 # body = self.driver.find_element_by_tag_name('body')
93 # for i in range(6):
94 # zoomAction.send_keys_to_element(body,Keys.CONTROL,"-").perform() # +Keys.MINUS
95 # driver.get('chrome://settings/')
96 # driver.execute_script('chrome.settingsPrivate.setDefaultZoom(1.5);')
97 self.driver.execute_script("document.body.style.webkitTransformOriginX=document.body.style.mstransformOriginX=document.body.style.transformOriginX=0;"+
98 "document.body.style.webkitTransformOriginY=document.body.style.mstransformOriginY=document.body.style.transformOriginY=0;"+
99 "document.body.style.webkitTransformOriginZ=document.body.style.mstransformOriginZ=document.body.style.transformOriginZ=0;"+
100 "document.body.style.webkitTransform = document.body.style.msTransform = document.body.style.transform = 'scale(.25)'")
101
102 self.finddriver = EventFiringWebDriver(self.driver, MyListener())
103
104 # logging.info('Initialized browser..')
105
106
107 def tearDown(self):
108 """Stop web driver"""
109 thedriver=self.driver
110 thedriver.quit()
111
112 def test_case_7(self):
113 """Login and test almost all the grid with the previous project."""
114 thedriver=self.driver
115 finddriver=self.finddriver
116 try:
117 time.sleep(Nsec)
118 thedriver.get(self.URL)
119
120 button=finddriver.find_element_by_xpath("//button[@name='buttonLogin']")
121 button.click()
122
123 elem=finddriver.find_element_by_xpath("//input[@id='username']")
124 elem.clear()
125 elem.send_keys("ddurandi")
126
127 elem=finddriver.find_element_by_xpath("//input[@id='password']")
128 elem.clear()
129 elem.send_keys("OtherP@ssw/31d")
130
131 remember_me=finddriver.find_element_by_id("remember_me")
132 remember_me.click()
133
134 button=finddriver.find_element_by_id('submit')
135 button.click()
136
137 elem=finddriver.find_element_by_id("filter_chosen_project_session")
138 elem.send_keys("TestSelenium")
139
140 button=finddriver.find_element_by_id('Valid_chosen_project_session')
141 button.click()
142
143 if (SaveScreenshotBool):
144 thedriver.save_screenshot('/tmp/tests/test7-which_session.png')
145
146
147 button=finddriver.find_element_by_id('submit')
148 button.click()
149
150 time.sleep(20)
151
152 if (SaveScreenshotBool):
153 thedriver.save_screenshot('/tmp/tests/test7-Grid_screenshot.png')
154
155 thedriver.execute_script("document.body.style.webkitTransformOriginX=document.body.style.mstransformOriginX=document.body.style.transformOriginX=0;"+
156 "document.body.style.webkitTransformOriginY=document.body.style.mstransformOriginY=document.body.style.transformOriginY=0;"+
157 "document.body.style.webkitTransformOriginZ=document.body.style.mstransformOriginZ=document.body.style.transformOriginZ=0;"+
158 "document.body.style.webkitTransform = document.body.style.msTransform = document.body.style.transform = 'scale(.25)';"+
159 "document.body.style.width='7680px';")
160 thedriver.execute_script("document.body.style.margintop='-1220px'")
161 thedriver.execute_script("document.body.style.marginleft='-2880px';")
162 #thedriver.set_window_size(7680, 4320)
163 thedriver.set_window_size(1920, 1080)
164 thedriver.maximize_window()
165 time.sleep(10)
166 if (SaveScreenshotBool):
167 thedriver.save_screenshot('/tmp/tests/test7-Grid_unzoomed_screenshot.png')
168
169 # print("Console :")
170 # logging.debug(" Console :")
171 # for entry in thedriver.get_log('browser'):
172 # print(str(entry))
173 # logging.debug(entry)
174
175
176 # if (SaveScreenshotBool):
177 # thedriver.save_screenshot('/tmp/tests/test7-TileMenu.png')
178 time.sleep(20)
179 wait = WebDriverWait(thedriver, 20)
180 button = wait.until(EC.visibility_of_element_located((By.ID, 'Globaloption8')))
181 button = wait.until(EC.element_to_be_clickable((By.ID, 'Globaloption8')))
182 button.click()
183
184 # if (SaveScreenshotBool):
185 # thedriver.save_screenshot('/tmp/tests/test7-TileMenu.png')
186
187 wait = WebDriverWait(thedriver, 2)
188 button = wait.until(EC.element_to_be_clickable((By.ID, '0option1')))
189 button.click()
190
191 wait = WebDriverWait(thedriver, 6)
192 postit0 = wait.until(EC.visibility_of_element_located((By.ID,'postit0')))
193
194 if (SaveScreenshotBool):
195 thedriver.save_screenshot('/tmp/tests/test7-postIt.png')
196 time.sleep(2)
197 button.click()
198
199 button=finddriver.find_element_by_id("1option0")
200 button.click()
201
202 wait = WebDriverWait(thedriver, 3)
203 button = wait.until(EC.element_to_be_clickable((By.ID,'tile-opacity-1')))
204 button.click()
205
206 slider=finddriver.find_element_by_id('tileOpacitySlider1')
207 if (SaveScreenshotBool):
208 thedriver.save_screenshot('/tmp/tests/test7-opacity_before_screenshot.png')
209
210 # #Using Action Class
211 # move = ActionChains(finddriver);
212 # move.move_to_element(slider);
213 # move.move_by_offset(20, 0);
214 # move.perform();
215 # # Actions act=new Actions(driver);
216 # # act.moveToElement(element).click().perform();
217
218 button=finddriver.find_element_by_id('tileOpacitySlider1')
219 button.click()
220
221 if (SaveScreenshotBool):
222 thedriver.save_screenshot('/tmp/tests/test7-opacity_after_screenshot.png')
223
224 button=finddriver.find_element_by_id('tile-opacity-1')
225 button.click()
226
227
228 button=finddriver.find_element_by_id("4option2")
229 button.click()
230
231 if (SaveScreenshotBool):
232 thedriver.save_screenshot('/tmp/tests/test7-draw_mode_screenshot.png')
233
234 colorButton=finddriver.find_element_by_id('Drawoption0')
235 colorButton.click()
236
237 # colorChoose=finddriver.find_element_by_id('colorChoose')
238 # colorChoose.click()
239 # colorChoose.send_keys("#ea1d1d")
240
241 colorButton=finddriver.find_element_by_id('Drawoption0')
242 colorButton.click()
243
244 canvas=finddriver.find_element_by_id('drawCanvas4')
245
246 # #Using Action Class
247 # move = ActionChains(thedriver)
248 # move.move_to_element_with_offset(canvas,200,200);
249 # move.click_and_hold(canvas[0])
250 # move.move_by_offset(70, -55)
251 # move.release(canvas)
252 # move.perform()
253
254 if (SaveScreenshotBool):
255 thedriver.save_screenshot('/tmp/tests/test7-draw_screenshot.png')
256
257 saveOnTileButton=finddriver.find_element_by_id('Drawoption4')
258 saveOnTileButton.click()
259
260 time.sleep(4)
261 if (SaveScreenshotBool):
262 thedriver.save_screenshot('/tmp/tests/test7-back_from_draw_screenshot.png')
263
264 wait = WebDriverWait(thedriver, 4)
265 button = wait.until(EC.element_to_be_clickable((By.ID,"Globaloption6")))
266 button.click()
267
268 wait = WebDriverWait(thedriver, 4)
269 button = wait.until(EC.element_to_be_clickable((By.ID,"managementGlobaloption0")))
270 button.click()
271
272 if (SaveScreenshotBool):
273 thedriver.save_screenshot('/tmp/tests/test7-draw_management_screenshot.png')
274
275 button=finddriver.find_element_by_id("Globaloption6")
276 button.click()
277
278 button=finddriver.find_element_by_id("6option4")
279 button.click()
280
281 wait = WebDriverWait(thedriver, 3)
282 button = wait.until(EC.element_to_be_clickable((By.ID,"12option4")))
283 button.click()
284
285 button=finddriver.find_element_by_id("3option3")
286 button.click()
287
288 button=finddriver.find_element_by_id("5option3")
289 button.click()
290
291 if (SaveScreenshotBool):
292 thedriver.save_screenshot('/tmp/tests/test7-lines_columns_exchange_screenshot.png')
293
294 button=finddriver.find_element_by_id("Globaloption8")
295 button.click()
296
297 button=finddriver.find_element_by_id("Globaloption5")
298 button.click()
299
300 button=finddriver.find_element_by_id("zoomGlobaloption0")
301 button.click()
302
303 hitbox0=finddriver.find_element_by_id('hitbox0')
304 hitbox0.click()
305 # move = ActionChains(thedriver)
306 # move.move_to_element(hitbox0)
307 # move.click(hitbox0)
308 # move.perform()
309 time.sleep(2)
310
311
312 hitbox1=finddriver.find_element_by_id('hitbox1')
313 hitbox1.click()
314 # move = ActionChains(thedriver)
315 # move.move_to_element(hitbox1)
316 # move.click(hitbox1)
317 # move.perform()
318 time.sleep(2)
319
320 hitbox5=finddriver.find_element_by_id('hitbox5')
321 hitbox5.click()
322 # move = ActionChains(thedriver)
323 # move.move_to_element(hitbox5)
324 # move.click(hitbox5)
325 # move.perform()
326 time.sleep(2)
327
328
329 hitbox4=finddriver.find_element_by_id('hitbox4')
330 hitbox4.click()
331 # move = ActionChains(thedriver)
332 # move.move_to_element(hitbox4)
333 # move.click(hitbox4)
334 # move.perform()
335 time.sleep(2)
336
337 if (SaveScreenshotBool):
338 thedriver.save_screenshot('/tmp/tests/test7-select_0_1_4_5_screenshot.png')
339
340 button=finddriver.find_element_by_id("Zoomoption0")
341 button.click()
342
343 wait = WebDriverWait(thedriver, 3)
344 button = wait.until(EC.element_to_be_clickable((By.ID,'Zclose2')))
345
346 if (SaveScreenshotBool):
347 thedriver.save_screenshot('/tmp/tests/test7-Zoom_screenshot.png')
348
349 button.click()
350
351
352 button=finddriver.find_element_by_id('Zclose0')
353 button.click()
354
355 if (SaveScreenshotBool):
356 thedriver.save_screenshot('/tmp/tests/test7-zclose_screenshot.png')
357
358 button=finddriver.find_element_by_id('buttonUnzoom')
359 button.click()
360
361
362 button=finddriver.find_element_by_id("Globaloption5")
363 button.click()
364
365 # button=finddriver.find_element_by_xpath("//div[3]/div[5][@id='option4']")
366 # button.click()
367
368 # button=finddriver.find_element_by_xpath("//div[8][@id='option7']")
369 # button.click()
370
371 # button=finddriver.find_element_by_id('onoff11')
372 # button.click()
373
374
375 # button=finddriver.find_element_by_id('onoff13')
376 # button.click()
377
378
379 # button=finddriver.find_element_by_id('onoff8')
380 # button.click()
381
382
383 # button=finddriver.find_element_by_xpath("//div[3]/div[4][@id='option3']")
384 # button.click()
385
386 # button=finddriver.find_element_by_xpath("//div[4]/div")
387 # button.click()
388
389 # time.sleep(1)
390
391 # button=finddriver.find_element_by_id('Off')
392 # button.click()
393
394 # # if (SaveScreenshotBool):
395 # # thedriver.save_screenshot('/tmp/tests/test7-select_Off_tag_screenshot.png')
396
397 # button=finddriver.find_element_by_xpath("//div[3]/div[5][@id='option4']")
398 # button.click()
399
400 # button=finddriver.find_element_by_xpath("//div[6]/div")
401 # button.click()
402
403 # # if (SaveScreenshotBool):
404 # # thedriver.save_screenshot('/tmp/tests/test7-Zoom_tag_Off_screenshot.png')
405
406 # button=finddriver.find_element_by_id('buttonUnzoom')
407 # button.click()
408
409 # time.sleep(2)
410
411 # button=finddriver.find_element_by_xpath("//div[4]/div")
412 # button.click()
413
414 # button=finddriver.find_element_by_xpath("//div[3]/div[5][@id='option4']")
415 # button.click()
416
417 # button=finddriver.find_element_by_xpath("//div[4]/div[2]")
418 # button.click()
419
420 # button=finddriver.find_element_by_id('Off')
421 # button.click()
422
423 # # if (SaveScreenshotBool):
424 # # thedriver.save_screenshot('/tmp/tests/test7-sort_Off_screenshot.png')
425
426
427 # button=finddriver.find_element_by_xpath("//div[4]/div[2]")
428 # button.click()
429
430 # button=finddriver.find_element_by_xpath("//div[10][@id='option9']")
431 # button.click()
432
433 # # if (SaveScreenshotBool):
434 # # thedriver.save_screenshot('/tmp/tests/test7-QRcodes_screenshot.png')
435
436 # button=finddriver.find_element_by_xpath("//div[10][@id='option9']")
437 # button.click()
438
439 # button=finddriver.find_element_by_xpath("//div[9][@id='option8']")
440 # button.click()
441
442 # time.sleep(1)
443
444 # button=finddriver.find_element_by_id('zoomNode9')
445 # button.click()
446
447 # # if (SaveScreenshotBool):
448 # # thedriver.save_screenshot('/tmp/tests/test7-Zoom_on_node9_screenshot.png')
449
450 # button=finddriver.find_element_by_id('buttonUnzoom')
451 # button.click()
452
453 # time.sleep(1)
454
455 # button=finddriver.find_element_by_xpath("//div[3]/div[4]")
456 # button.click()
457
458 # button=finddriver.find_element_by_xpath("//div[@id='menu999']/div[11]")
459 # move = ActionChains(thedriver)
460 # move.move_to_element(button)
461 # move.click(button)
462 # move.perform()
463
464 # # if (SaveScreenshotBool):
465 # # thedriver.save_screenshot('/tmp/tests/test7-info_node_always_show_screenshot.png')
466
467 # button=finddriver.find_element_by_xpath("//div[@id='menu999']/div[11]")
468 # move = ActionChains(thedriver)
469 # move.move_to_element(button)
470 # move.click(button)
471 # move.perform()
472 # # button=finddriver.find_element_by_xpath("//div[@id='menu999']/div[11]")
473 # # button.click()
474
475 # # button=finddriver.find_element_by_xpath("//div[15][@id='option14']")
476 # # move = ActionChains(thedriver)
477 # # move.move_to_element(button)
478 # # move.click(button)
479 # # move.perform()
480
481 # # # if (SaveScreenshotBool):
482 # # # thedriver.save_screenshot('/tmp/tests/test7-save_Session_screenshot.png')
483
484 # # button=finddriver.find_element_by_id('submitSave')
485 # # button.click()
486
487 # # # if (SaveScreenshotBool):
488 # # # thedriver.save_screenshot('/tmp/tests/test7-validate_save_screenshot.png')
489
490 # # button=finddriver.find_element_by_id('gGsubmit')
491 # # button.click()
492
493 # # # if (SaveScreenshotBool):
494 # # # thedriver.save_screenshot('/tmp/tests/test7-change_new_Session_screenshot.png')
495
496 # # button=finddriver.find_element_by_id('ChangeRoomYes')
497 # # button.click()
498
499 # # # if (SaveScreenshotBool):
500 # # # thedriver.save_screenshot('/tmp/tests/test7-validate_new_room_screenshot.png')
501
502
503 # button=finddriver.find_element_by_xpath("//div[16][@id='option15']")
504 # #button.click()
505 # move = ActionChains(thedriver)
506 # move.move_to_element(button)
507 # move.click(button)
508 # move.perform()
509
510 # time.sleep(1)
511 # # # if (SaveScreenshotBool):
512 # # # thedriver.save_screenshot('/tmp/tests/test7-options_screenshot.png')
513
514 # button=finddriver.find_element_by_id('colNumber')
515 # button.click()
516
517
518 # elem=finddriver.find_element_by_xpath("//input[@id='colNumber']")
519 # elem.clear()
520 # elem.send_keys("4")
521 # elem.send_keys(Keys.TAB)
522
523
524 # button=finddriver.find_element_by_id('spreadX')
525 # button.click()
526
527
528 # elem=finddriver.find_element_by_xpath("//input[@id='spreadX']")
529 # elem.clear()
530 # elem.send_keys("1758.4")
531 # elem.send_keys(Keys.TAB)
532
533
534 # button=finddriver.find_element_by_id('spreadY')
535 # button.click()
536
537
538 # elem=finddriver.find_element_by_xpath("//input[@id='spreadY']")
539 # elem.clear()
540 # elem.send_keys("880")
541 # elem.send_keys(Keys.TAB)
542
543
544 # button=finddriver.find_element_by_xpath("//div/div/input[@name='color-theme-radio']")
545 # button.click()
546
547 # button=finddriver.find_element_by_id('showinfo-cb')
548 # button.click()
549
550 # # if (SaveScreenshotBool):
551 # # thedriver.save_screenshot('/tmp/tests/test7-save_options_screenshot.png')
552
553 # button=finddriver.find_element_by_id('buttonSave')
554 # button.click()
555
556 # button=finddriver.find_element_by_xpath("//div[11][@id='option10']")
557 # button.click()
558
559 # # if (SaveScreenshotBool):
560 # # thedriver.save_screenshot('/tmp/tests/test7-info_screenshot.png')
561
562 # button=finddriver.find_element_by_xpath("//div[12][@id='option11']")
563 # button.click()
564
565 # # if (SaveScreenshotBool):
566 # # thedriver.save_screenshot('/tmp/tests/test7-refrash_screenshot.png')
567
568 # button=finddriver.find_element_by_xpath("//div[17][@id='option16']")
569 # button.click()
570
571 # # if (SaveScreenshotBool):
572 # # thedriver.save_screenshot('/tmp/tests/test7-help_TiledViz_screenshot.png')
573
574 # slider=finddriver.find_element_by_xpath("//input[@id='helpSlider']")
575 # #Using Action Class
576 # move = ActionChains(thedriver);
577 # move.move_to_element(slider);
578 # move.move_by_offset(80, 0);
579 # move.perform();
580
581 # slider.click()
582
583 # # if (SaveScreenshotBool):
584 # # thedriver.save_screenshot('/tmp/tests/test7-help_TiledViz_screenshot.png')
585
586 # button=finddriver.find_element_by_id('buttonClosehelp')
587 # button.click()
588
589 # # if (SaveScreenshotBool):
590 # # thedriver.save_screenshot('/tmp/tests/test7_final_screenshot.png')
591
592 except NoSuchElementException as ex:
593 self.fail(ex.msg+": \n"+thedriver.title)
594
595if __name__ == '__main__':
596 suite = unittest.TestLoader().loadTestsFromTestCase(TestTemplate)
597 result = unittest.TextTestRunner(verbosity=2).run(suite)
598 sys.exit(not result.wasSuccessful())