#!/usr/bin/python """Run simple UMC login Selenium test.""" # # python-selenium is too old in Debian sid and does not work with Iceweasel 10. # Install via pip: # aptitude install python-pip # pip install selenium # # # import sys import time from optparse import OptionParser from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities #from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait # >= 2.4.0 #from selenium.webdriver.support import expected_conditions as EC # >= 2.26.0 class German(object): """German.""" languages = "de-DE,de" logout_button = "//span[string()='Abmelden']" class English(object): """English.""" languages = "en" logout_button = "//span[string()='Logout']" class Test(object): """UMC Login.""" def firefox(self): """Setup firefox.""" # Create a new profile profile = webdriver.FirefoxProfile() profile.set_preference("intl.accept_languages", self.lang.languages) # Create a new instance of the Firefox driver driver = webdriver.Firefox(firefox_profile=profile) return driver def chrome(self): """Setup chome or chromium.""" # # Create settings settings = { "intl.accept_languages": self.lang.languages, } # Create options options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_experimental_option("prefs", settings) # Create a new instance of the Chrome driver driver = webdriver.Chrome(chrome_options=options) return driver def iexporer(self): """Setup Internet Explorer.""" driver = webdriver.Ie() return driver def opera(self): """Setup Opera Explorer.""" driver = webdriver.Opera() return driver def remote(self): """Setup Remote driver.""" # cap = webdriver.DesiredCapabilities() cap = cap.FIREFOX | cap.CHROME | cap.ANDROID | cap.HTMLUNIT | cap.HTMLUNITWITHJS | cap.INTERNETEXPLORER | cap.IPAD | cap.IPHONE | cap.OPERA | cap.PHANTOMJS | cap.SAFARI #cap["jenkins.label"] = "redhat5 && amd64" #cap["jenkins.nodeName"] = "(master)" driver = webdriver.Remote(cap) return driver def __init__(self, options): """Initialize browser.""" if options.lang == "de": self.lang = German elif options.lang == "en": self.lang = English else: raise ValueError(options.lang) if options.browser == "firefox": self.driver = self.firefox() elif options.browser == "chrome": self.driver = self.chrome() elif options.browser == "ie": self.driver = self.iexporer() elif options.browser == "opera": self.driver = self.opera() elif options.browser == "remote": self.driver = self.remote() else: raise ValueError(options.browser) self.delay = options.delay self.timeout = options.timeout #driver.implicitly_wait(10) # seconds def run(self, url): """Run test.""" driver = self.driver try: # go to UMC driver.get(url) time.sleep(1) # FIXME Chromium # The login in loaded in an