diff --git a/tests/install_console.py b/tests/install_console.py index ca594bf17e..66d1c6de0c 100755 --- a/tests/install_console.py +++ b/tests/install_console.py @@ -1,35 +1,45 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Script to install the Pandora FMS Console. import os +import sys from pyvirtualdisplay import Display from selenium import webdriver +from selenium.common.exceptions import NoSuchElementException # Are we running headless? if ('DISPLAY' not in os.environ): display = Display(visible=0, size=(1920, 1080)) display.start() -# Go to the installation page. browser = webdriver.Firefox(timeout=15) -browser.implicitly_wait(5) -browser.get('http://localhost/pandora_console/install.php') -assert("Pandora FMS - Installation Wizard" in browser.title) -# Accept the license agreement. -browser.find_element_by_xpath("//*[@id='step11']").click() -browser.find_element_by_xpath("//*[@id='btn_accept']").click() +try: + # Go to the installation page. + browser.implicitly_wait(5) + browser.get('http://localhost/pandora_console/install.php') + assert("Pandora FMS - Installation Wizard" in browser.title) -# Fill-in the configuration form. -browser.find_element_by_xpath("//*[@id='step3']").click() -browser.find_element_by_name("pass").send_keys("pandora") -browser.find_element_by_xpath("//*[@id='step4']").click() + # Accept the license agreement. + browser.find_element_by_xpath("//*[@id='step11']").click() + browser.find_element_by_xpath("//*[@id='btn_accept']").click() -# Complete the installation. -browser.implicitly_wait(300) # The installation is going to take a long time. -browser.find_element_by_xpath("//*[@id='step5']").click() -browser.implicitly_wait(5) -assert("Installation complete" in browser.page_source) -browser.find_element_by_name("rn_file").click() + # Fill-in the configuration form. + browser.find_element_by_xpath("//*[@id='step3']").click() + browser.find_element_by_name("pass").send_keys("pandora") + browser.find_element_by_xpath("//*[@id='step4']").click() + + # Complete the installation. + browser.implicitly_wait(900) # The installation is going to take a long time. + browser.find_element_by_xpath("//*[@id='step5']").click() + browser.implicitly_wait(5) + assert("Installation complete" in browser.page_source) + browser.find_element_by_name("rn_file").click() +except AssertionError as error: + print("Error " + str(error) + ":\n" + browser.page_source) + sys.exit(1) +except NoSuchElementException as error: + print("Error " + str(error) + ":\n" + browser.page_source) + sys.exit(1) # Clean-up browser.quit()