test_saucedemo.py 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  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. from selenium.webdriver.support.ui import Select
  8. #@pytest.mark.skip("je veux pas le faire")
  9. @pytest.mark.skip("je veux pas le faire")
  10. def element_visible_actif(element):
  11. assert element.is_displayed()
  12. assert element.is_enabled()
  13. def writeInInput(inputElement, text):
  14. assert inputElement.is_displayed(), "Le champ texte n'est pas affiché"
  15. assert inputElement.is_enabled(), "Le champ texte n'est pas activé"
  16. inputElement.clear()
  17. inputElement.send_keys(text)
  18. @pytest.mark.skip("je veux pas le faire")
  19. def test_loginOK():
  20. #serveur
  21. log.info("Test du Login avec succès")
  22. options = webdriver.FirefoxOptions()
  23. options.add_argument('--headless')
  24. driver = webdriver.Firefox(options=options)
  25. driver.get("https://www.saucedemo.com/")
  26. assert driver.current_url == "https://www.saucedemo.com/", "Nous ne somme pas sur la bonne page"
  27. username = driver.find_element(By.ID,"user-name")
  28. password = driver.find_element(By.ID,"password")
  29. login = driver.find_element(By.ID, "login-button")
  30. writeInInput(inputElement=username, text="standard_user")
  31. writeInInput(password, text="secret_sauce")
  32. login.click()
  33. assert driver.current_url == "https://www.saucedemo.com/inventory.html", "Nous ne somme pas sur la bonne page"
  34. driver.quit()
  35. def test_D():
  36. pass
  37. #@pytest.mark.skip("je veux pas le faire")
  38. def test_login_KO_saucedemo():
  39. #driver = webdriver.Chrome()
  40. log.info("Test du Login avec succès")
  41. options = webdriver.FirefoxOptions()
  42. options.add_argument('--headless')
  43. driver = webdriver.Firefox(options=options)
  44. url_sauce_demo = "https://www.saucedemo.com/"
  45. titre_page = "Swag Labs"
  46. driver.get(url_sauce_demo)
  47. log.info("Le titre de la page : "+driver.title)
  48. log.info("L'URL de la page : "+driver.current_url)
  49. assert driver.current_url == url_sauce_demo, "L'url de la page ouverte ("+driver.current_url+") n'est pas égale a "+url_sauce_demo
  50. assert driver.title == titre_page, "Le titre de la page n'est pas egale a "+titre_page
  51. champ_username = driver.find_element(By.XPATH, '//*[@id="user-name"]')
  52. champ_username.send_keys("Pas Bon")
  53. assert champ_username.get_attribute("value") != "standard_user", "MON MESSAGE D'ERREUR PERSONEL"
  54. log.info("TEXTE DU CHAMP USERNAME: "+champ_username.text)
  55. log.info("ATTRIBUT PLACEHOLDER DU CHAMP USERNAME: "+champ_username.get_attribute("placeholder"))
  56. champ_mdp = driver.find_element(By.CSS_SELECTOR, '#password')
  57. champ_mdp.send_keys("secret_sauce")
  58. #Appuyer sur la touche entree dans le champ mdp
  59. #champ_mdp.send_keys(Keys.RETURN)
  60. button_login = driver.find_element(By.ID, "login-button")
  61. button_login.click()
  62. assert driver.current_url == url_sauce_demo, "L'url de la page ouverte ("+driver.current_url+") n'est pas égale a "+url_sauce_demo
  63. message_erreur = driver.find_element(By.CSS_SELECTOR, "[data-test=error]")
  64. assert message_erreur.is_displayed(), "Le message d'erreur n'est pas afficher a l'ecrant"
  65. assert message_erreur.text == "Epic sadface: Username and password do not match any user in this service"
  66. time.sleep(3)
  67. driver.quit()
  68. #@pytest.mark.skip("JE VEUX PAS LE FAIRE")
  69. def test_login_OK_logout_saucedemo():
  70. #driver = webdriver.Chrome()
  71. log.info("Test du Login avec succès")
  72. options = webdriver.FirefoxOptions()
  73. options.add_argument('--headless')
  74. driver = webdriver.Firefox(options=options)
  75. driver.implicitly_wait(15)
  76. #wait = WebDriverWait(driver, 15)
  77. url_sauce_demo="https://www.saucedemo.com/"
  78. titre_page="Swag Labs"
  79. driver.get(url_sauce_demo)
  80. log.info("Le titre de la page" + driver.title)
  81. log.info("L'URL de la page " + driver.current_url)
  82. assert driver.current_url==url_sauce_demo, "L'url de la page ouverte ("+ driver.current_url+") n'est pas égal à "+url_sauce_demo
  83. assert driver.title==titre_page, "Le titre de la page ("+driver.title+") n'est pas égal à " + titre_page
  84. champ_username = driver.find_element(By.XPATH,'//*[@id="user-name"]')
  85. log.info(champ_username)
  86. champ_username.send_keys("standard_user")
  87. log.info("texte du champ username"+champ_username.text)
  88. log.info("L'attribut du champ username est "+ champ_username.get_attribute("placeholder") )
  89. assert champ_username.get_attribute("value")=="standard_user"
  90. champ_mdp = driver.find_element(By.CSS_SELECTOR,'#password')
  91. champ_mdp.send_keys("secret_sauce")
  92. button_login = driver.find_element(By.ID,"login-button")
  93. element_visible_actif(button_login)
  94. button_login.click()
  95. 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"
  96. button_burger= driver.find_element(By.ID,"react-burger-menu-btn")
  97. element_visible_actif(button_burger)
  98. time.sleep(5)
  99. button_burger.click()
  100. button_logout= driver.find_element(By.ID,"logout_sidebar_link")
  101. time.sleep(5)
  102. button_logout.click()
  103. assert driver.current_url==url_sauce_demo, "L'url de la page ouverte ("+ driver.current_url+") n'est pas égal à "+url_sauce_demo
  104. time.sleep(5)
  105. driver.quit()
  106. #@pytest.mark.skip("JE VEUX PAS LE FAIRE")
  107. def test_Filtrer_par_Name_acendant():
  108. driver = webdriver.Chrome()
  109. driver.get("https://www.saucedemo.com/")
  110. #log.info("Test du Login avec succès")
  111. #options = webdriver.FirefoxOptions()
  112. #options.add_argument('--headless')
  113. #driver = webdriver.Firefox(options=options)
  114. username = driver.find_element(By.ID,"user-name")
  115. password = driver.find_element(By.ID,"password")
  116. login = driver.find_element(By.ID, "login-button")
  117. writeInInput(inputElement=username, text="standard_user")
  118. writeInInput(password, text="secret_sauce")
  119. login.click()
  120. # button_login = driver.find_element(By.CLASS_NAME, "product_sort_container")
  121. #log.info(button_login.get_attribute('value'))
  122. Filter_List = Select(driver.find_element(By.CLASS_NAME, "product_sort_container"))
  123. Filter_List.select_by_value("az")
  124. driver.quit()
  125. #@pytest.mark.skip("JE VEUX PAS LE FAIRE")
  126. def test_Filtrer_par_Name_decendant():
  127. driver = webdriver.Chrome()
  128. driver.get("https://www.saucedemo.com/")
  129. #log.info("Test du Login avec succès")
  130. #options = webdriver.FirefoxOptions()
  131. #options.add_argument('--headless')
  132. #driver = webdriver.Firefox(options=options)
  133. username = driver.find_element(By.ID,"user-name")
  134. password = driver.find_element(By.ID,"password")
  135. login = driver.find_element(By.ID, "login-button")
  136. writeInInput(inputElement=username, text="standard_user")
  137. writeInInput(password, text="secret_sauce")
  138. login.click()
  139. # button_login = driver.find_element(By.CLASS_NAME, "product_sort_container")
  140. #log.info(button_login.get_attribute('value'))
  141. Filter_List = Select(driver.find_element(By.CLASS_NAME, "product_sort_container"))
  142. Filter_List.select_by_value("za")
  143. driver.quit()
  144. #@pytest.mark.skip("JE VEUX PAS LE FAIRE")
  145. def test_Filtrer_par_Price_high_to_low():
  146. driver = webdriver.Chrome()
  147. driver.get("https://www.saucedemo.com/")
  148. #log.info("Test du Login avec succès")
  149. #options = webdriver.FirefoxOptions()
  150. #options.add_argument('--headless')
  151. #driver = webdriver.Firefox(options=options)
  152. username = driver.find_element(By.ID,"user-name")
  153. password = driver.find_element(By.ID,"password")
  154. login = driver.find_element(By.ID, "login-button")
  155. writeInInput(inputElement=username, text="standard_user")
  156. writeInInput(password, text="secret_sauce")
  157. login.click()
  158. # button_login = driver.find_element(By.CLASS_NAME, "product_sort_container")
  159. #log.info(button_login.get_attribute('value'))
  160. Filter_List = Select(driver.find_element(By.CLASS_NAME, "product_sort_container"))
  161. time.sleep(5)
  162. Filter_List.select_by_value("hilo")
  163. time.sleep(10)
  164. #log.info(button_login.get_attribute('value'))
  165. driver.quit()
  166. #@pytest.mark.skip("JE VEUX PAS LE FAIRE")
  167. def test_Filtrer_par_Price_low_to_high():
  168. driver = webdriver.Chrome()
  169. driver.get("https://www.saucedemo.com/")
  170. #log.info("Test du Login avec succès")
  171. #options = webdriver.FirefoxOptions()
  172. #options.add_argument('--headless')
  173. #driver = webdriver.Firefox(options=options)
  174. username = driver.find_element(By.ID,"user-name")
  175. password = driver.find_element(By.ID,"password")
  176. login = driver.find_element(By.ID, "login-button")
  177. writeInInput(inputElement=username, text="standard_user")
  178. writeInInput(password, text="secret_sauce")
  179. login.click()
  180. # button_login = driver.find_element(By.CLASS_NAME, "product_sort_container")
  181. #log.info(button_login.get_attribute('value'))
  182. Filter_List = Select(driver.find_element(By.CLASS_NAME, "product_sort_container"))
  183. time.sleep(5)
  184. Filter_List.select_by_value("lohi")
  185. time.sleep(10)
  186. #log.info(button_login.get_attribute('value'))
  187. driver.quit()