test_index.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/python
  2. import os
  3. username, password = os.environ['DOCKER_CREDS'].split(':')
  4. from selenium import webdriver
  5. from selenium.webdriver.common.by import By
  6. from selenium.webdriver.common.keys import Keys
  7. from selenium.webdriver.support.ui import Select
  8. from selenium.common.exceptions import NoSuchElementException
  9. import unittest, time, re
  10. class Docker(unittest.TestCase):
  11. def setUp(self):
  12. self.driver = webdriver.PhantomJS()
  13. self.driver.implicitly_wait(30)
  14. self.base_url = "http://www.docker.io/"
  15. self.verificationErrors = []
  16. self.accept_next_alert = True
  17. def test_docker(self):
  18. driver = self.driver
  19. print "Login into {0} as login user {1} ...".format(self.base_url,username)
  20. driver.get(self.base_url + "/")
  21. driver.find_element_by_link_text("INDEX").click()
  22. driver.find_element_by_link_text("login").click()
  23. driver.find_element_by_id("id_username").send_keys(username)
  24. driver.find_element_by_id("id_password").send_keys(password)
  25. print "Checking login user ..."
  26. driver.find_element_by_css_selector("input[type=\"submit\"]").click()
  27. try: self.assertEqual("test", driver.find_element_by_css_selector("h3").text)
  28. except AssertionError as e: self.verificationErrors.append(str(e))
  29. print "Login user {0} found".format(username)
  30. def is_element_present(self, how, what):
  31. try: self.driver.find_element(by=how, value=what)
  32. except NoSuchElementException, e: return False
  33. return True
  34. def is_alert_present(self):
  35. try: self.driver.switch_to_alert()
  36. except NoAlertPresentException, e: return False
  37. return True
  38. def close_alert_and_get_its_text(self):
  39. try:
  40. alert = self.driver.switch_to_alert()
  41. alert_text = alert.text
  42. if self.accept_next_alert:
  43. alert.accept()
  44. else:
  45. alert.dismiss()
  46. return alert_text
  47. finally: self.accept_next_alert = True
  48. def tearDown(self):
  49. self.driver.quit()
  50. self.assertEqual([], self.verificationErrors)
  51. if __name__ == "__main__":
  52. unittest.main()