test_saucedemo.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. import logging as log
  2. import pytest
  3. from selenium import webdriver
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.firefox.options import Options
  6. import time
  7. @pytest.mark.skip("je veux pas le faire")
  8. def writeInInput(inputElement, text):
  9. assert inputElement.is_displayed(), "Le champ texte n'est pas affiché"
  10. assert inputElement.is_enabled(), "Le champ texte n'est pas activé"
  11. inputElement.clear()
  12. inputElement.send_keys(text)
  13. @pytest.mark.skip("je veux pas le faire")
  14. def test_loginOK():
  15. #serveur
  16. log.info("Test du Login avec succès")
  17. options = webdriver.FirefoxOptions()
  18. options.add_argument('--headless')
  19. driver = webdriver.Firefox(options=options)
  20. driver.get("https://www.saucedemo.com/")
  21. assert driver.current_url == "https://www.saucedemo.com/", "Nous ne somme pas sur la bonne page"
  22. username = driver.find_element(By.ID,"user-name")
  23. password = driver.find_element(By.ID,"password")
  24. login = driver.find_element(By.ID, "login-button")
  25. writeInInput(inputElement=username, text="standard_user")
  26. writeInInput(password, text="secret_sauce")
  27. login.click()
  28. assert driver.current_url == "https://www.saucedemo.com/inventory.html", "Nous ne somme pas sur la bonne page"
  29. driver.quit()
  30. def test_D():
  31. pass
  32. @pytest.mark.skip("je veux pas le faire")
  33. def test_login_KO_saucedemo():
  34. #driver = webdriver.Chrome()
  35. log.info("Test du Login avec succès")
  36. options = webdriver.FirefoxOptions()
  37. options.add_argument('--headless')
  38. driver = webdriver.Firefox(options=options)
  39. url_sauce_demo = "https://www.saucedemo.com/"
  40. titre_page = "Swag Labs"
  41. driver.get(url_sauce_demo)
  42. log.info("Le titre de la page : "+driver.title)
  43. log.info("L'URL de la page : "+driver.current_url)
  44. assert driver.current_url == url_sauce_demo, "L'url de la page ouverte ("+driver.current_url+") n'est pas égale a "+url_sauce_demo
  45. assert driver.title == titre_page, "Le titre de la page n'est pas egale a "+titre_page
  46. champ_username = driver.find_element(By.XPATH, '//*[@id="user-name"]')
  47. champ_username.send_keys("Pas Bon")
  48. assert champ_username.get_attribute("value") != "standard_user", "MON MESSAGE D'ERREUR PERSONEL"
  49. log.info("TEXTE DU CHAMP USERNAME: "+champ_username.text)
  50. log.info("ATTRIBUT PLACEHOLDER DU CHAMP USERNAME: "+champ_username.get_attribute("placeholder"))
  51. champ_mdp = driver.find_element(By.CSS_SELECTOR, '#password')
  52. champ_mdp.send_keys("secret_sauce")
  53. #Appuyer sur la touche entree dans le champ mdp
  54. #champ_mdp.send_keys(Keys.RETURN)
  55. button_login = driver.find_element(By.ID, "login-button")
  56. button_login.click()
  57. assert driver.current_url == url_sauce_demo, "L'url de la page ouverte ("+driver.current_url+") n'est pas égale a "+url_sauce_demo
  58. message_erreur = driver.find_element(By.CSS_SELECTOR, "[data-test=error]")
  59. assert message_erreur.is_displayed(), "Le message d'erreur n'est pas afficher a l'ecrant"
  60. assert message_erreur.text == "Epic sadface: Username and password do not match any user in this service"
  61. time.sleep(0)
  62. driver.quit()
  63. #@pytest.mark.skip("JE VEUX PAS LE FAIRE")
  64. def test_login_OK_logout_saucedemo():
  65. #driver = webdriver.Chrome()
  66. log.info("Test du Login avec succès")
  67. options = webdriver.FirefoxOptions()
  68. options.add_argument('--headless')
  69. driver = webdriver.Firefox(options=options)
  70. driver.implicitly_wait(15)
  71. #wait = WebDriverWait(driver, 15)
  72. url_sauce_demo="https://www.saucedemo.com/"
  73. titre_page="Swag Labs"
  74. driver.get(url_sauce_demo)
  75. log.info("Le titre de la page" + driver.title)
  76. log.info("L'URL de la page " + driver.current_url)
  77. assert driver.current_url==url_sauce_demo, "L'url de la page ouverte ("+ driver.current_url+") n'est pas égal à "+url_sauce_demo
  78. assert driver.title==titre_page, "Le titre de la page ("+driver.title+") n'est pas égal à " + titre_page
  79. champ_username = driver.find_element(By.XPATH,'//*[@id="user-name"]')
  80. log.info(champ_username)
  81. champ_username.send_keys("standard_user")
  82. log.info("texte du champ username"+champ_username.text)
  83. log.info("L'attribut du champ username est "+ champ_username.get_attribute("placeholder") )
  84. assert champ_username.get_attribute("value")=="standard_user"
  85. champ_mdp = driver.find_element(By.CSS_SELECTOR,'#password')
  86. champ_mdp.send_keys("secret_sauce")
  87. button_login = driver.find_element(By.ID,"login-button")
  88. writeInInput(button_login)
  89. button_login.click()
  90. assert driver.current_url=="https://www.saucedemo.com/inventory.html", "l'url de la page ouverte ("+ driver.current_url + ") n'est pas égal à https://www.saucedemo.com/inventory.html"
  91. button_burger= driver.find_element(By.ID,"react-burger-menu-btn")
  92. writeInInput(button_burger)
  93. button_burger.click()
  94. button_logout= driver.find_element(By.ID,"logout_sidebar_link")
  95. button_logout.click()
  96. assert driver.current_url==url_sauce_demo, "L'url de la page ouverte ("+ driver.current_url+") n'est pas égal à "+url_sauce_demo
  97. driver.quit()