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