import logging as log import pytest from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.firefox.options import Options import time from selenium.webdriver.support.ui import Select #@pytest.mark.skip("je veux pas le faire") @pytest.mark.skip("je veux pas le faire") def element_visible_actif(element): assert element.is_displayed() assert element.is_enabled() def writeInInput(inputElement, text): assert inputElement.is_displayed(), "Le champ texte n'est pas affiché" assert inputElement.is_enabled(), "Le champ texte n'est pas activé" inputElement.clear() inputElement.send_keys(text) @pytest.mark.skip("je veux pas le faire") def test_loginOK(): #serveur log.info("Test du Login avec succès") options = webdriver.FirefoxOptions() options.add_argument('--headless') driver = webdriver.Firefox(options=options) driver.get("https://www.saucedemo.com/") assert driver.current_url == "https://www.saucedemo.com/", "Nous ne somme pas sur la bonne page" username = driver.find_element(By.ID,"user-name") password = driver.find_element(By.ID,"password") login = driver.find_element(By.ID, "login-button") writeInInput(inputElement=username, text="standard_user") writeInInput(password, text="secret_sauce") login.click() assert driver.current_url == "https://www.saucedemo.com/inventory.html", "Nous ne somme pas sur la bonne page" driver.quit() def test_D(): pass #@pytest.mark.skip("je veux pas le faire") def test_login_KO_saucedemo(): #driver = webdriver.Chrome() log.info("Test du Login avec succès") options = webdriver.FirefoxOptions() options.add_argument('--headless') driver = webdriver.Firefox(options=options) url_sauce_demo = "https://www.saucedemo.com/" titre_page = "Swag Labs" driver.get(url_sauce_demo) log.info("Le titre de la page : "+driver.title) log.info("L'URL de la page : "+driver.current_url) assert driver.current_url == url_sauce_demo, "L'url de la page ouverte ("+driver.current_url+") n'est pas égale a "+url_sauce_demo assert driver.title == titre_page, "Le titre de la page n'est pas egale a "+titre_page champ_username = driver.find_element(By.XPATH, '//*[@id="user-name"]') champ_username.send_keys("Pas Bon") assert champ_username.get_attribute("value") != "standard_user", "MON MESSAGE D'ERREUR PERSONEL" log.info("TEXTE DU CHAMP USERNAME: "+champ_username.text) log.info("ATTRIBUT PLACEHOLDER DU CHAMP USERNAME: "+champ_username.get_attribute("placeholder")) champ_mdp = driver.find_element(By.CSS_SELECTOR, '#password') champ_mdp.send_keys("secret_sauce") #Appuyer sur la touche entree dans le champ mdp #champ_mdp.send_keys(Keys.RETURN) button_login = driver.find_element(By.ID, "login-button") button_login.click() assert driver.current_url == url_sauce_demo, "L'url de la page ouverte ("+driver.current_url+") n'est pas égale a "+url_sauce_demo message_erreur = driver.find_element(By.CSS_SELECTOR, "[data-test=error]") assert message_erreur.is_displayed(), "Le message d'erreur n'est pas afficher a l'ecrant" assert message_erreur.text == "Epic sadface: Username and password do not match any user in this service" time.sleep(3) driver.quit() #@pytest.mark.skip("JE VEUX PAS LE FAIRE") def test_login_OK_logout_saucedemo(): #driver = webdriver.Chrome() log.info("Test du Login avec succès") options = webdriver.FirefoxOptions() options.add_argument('--headless') driver = webdriver.Firefox(options=options) driver.implicitly_wait(15) #wait = WebDriverWait(driver, 15) url_sauce_demo="https://www.saucedemo.com/" titre_page="Swag Labs" driver.get(url_sauce_demo) log.info("Le titre de la page" + driver.title) log.info("L'URL de la page " + driver.current_url) assert driver.current_url==url_sauce_demo, "L'url de la page ouverte ("+ driver.current_url+") n'est pas égal à "+url_sauce_demo assert driver.title==titre_page, "Le titre de la page ("+driver.title+") n'est pas égal à " + titre_page champ_username = driver.find_element(By.XPATH,'//*[@id="user-name"]') log.info(champ_username) champ_username.send_keys("standard_user") log.info("texte du champ username"+champ_username.text) log.info("L'attribut du champ username est "+ champ_username.get_attribute("placeholder") ) assert champ_username.get_attribute("value")=="standard_user" champ_mdp = driver.find_element(By.CSS_SELECTOR,'#password') champ_mdp.send_keys("secret_sauce") button_login = driver.find_element(By.ID,"login-button") element_visible_actif(button_login) button_login.click() 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" button_burger= driver.find_element(By.ID,"react-burger-menu-btn") element_visible_actif(button_burger) time.sleep(5) button_burger.click() button_logout= driver.find_element(By.ID,"logout_sidebar_link") time.sleep(5) button_logout.click() assert driver.current_url==url_sauce_demo, "L'url de la page ouverte ("+ driver.current_url+") n'est pas égal à "+url_sauce_demo time.sleep(5) driver.quit() #@pytest.mark.skip("JE VEUX PAS LE FAIRE") def test_Filtrer_par_Name_acendant(): #driver = webdriver.Chrome() #driver.get("https://www.saucedemo.com/") log.info("Test du Login avec succès") options = webdriver.FirefoxOptions() options.add_argument('--headless') driver = webdriver.Firefox(options=options) username = driver.find_element(By.ID,"user-name") password = driver.find_element(By.ID,"password") login = driver.find_element(By.ID, "login-button") writeInInput(inputElement=username, text="standard_user") writeInInput(password, text="secret_sauce") login.click() # button_login = driver.find_element(By.CLASS_NAME, "product_sort_container") #log.info(button_login.get_attribute('value')) Filter_List = Select(driver.find_element(By.CLASS_NAME, "product_sort_container")) Filter_List.select_by_value("az") driver.quit() #@pytest.mark.skip("JE VEUX PAS LE FAIRE") def test_Filtrer_par_Name_decendant(): #driver = webdriver.Chrome() #driver.get("https://www.saucedemo.com/") log.info("Test du Login avec succès") options = webdriver.FirefoxOptions() options.add_argument('--headless') driver = webdriver.Firefox(options=options) username = driver.find_element(By.ID,"user-name") password = driver.find_element(By.ID,"password") login = driver.find_element(By.ID, "login-button") writeInInput(inputElement=username, text="standard_user") writeInInput(password, text="secret_sauce") login.click() # button_login = driver.find_element(By.CLASS_NAME, "product_sort_container") #log.info(button_login.get_attribute('value')) Filter_List = Select(driver.find_element(By.CLASS_NAME, "product_sort_container")) Filter_List.select_by_value("za") driver.quit() #@pytest.mark.skip("JE VEUX PAS LE FAIRE") def test_Filtrer_par_Price_high_to_low(): #driver = webdriver.Chrome() #driver.get("https://www.saucedemo.com/") log.info("Test du Login avec succès") options = webdriver.FirefoxOptions() options.add_argument('--headless') driver = webdriver.Firefox(options=options) username = driver.find_element(By.ID,"user-name") password = driver.find_element(By.ID,"password") login = driver.find_element(By.ID, "login-button") writeInInput(inputElement=username, text="standard_user") writeInInput(password, text="secret_sauce") login.click() # button_login = driver.find_element(By.CLASS_NAME, "product_sort_container") #log.info(button_login.get_attribute('value')) Filter_List = Select(driver.find_element(By.CLASS_NAME, "product_sort_container")) time.sleep(5) Filter_List.select_by_value("hilo") time.sleep(10) #log.info(button_login.get_attribute('value')) driver.quit() #@pytest.mark.skip("JE VEUX PAS LE FAIRE") def test_Filtrer_par_Price_low_to_high(): #driver = webdriver.Chrome() #driver.get("https://www.saucedemo.com/") log.info("Test du Login avec succès") options = webdriver.FirefoxOptions() options.add_argument('--headless') driver = webdriver.Firefox(options=options) username = driver.find_element(By.ID,"user-name") password = driver.find_element(By.ID,"password") login = driver.find_element(By.ID, "login-button") writeInInput(inputElement=username, text="standard_user") writeInInput(password, text="secret_sauce") login.click() # button_login = driver.find_element(By.CLASS_NAME, "product_sort_container") #log.info(button_login.get_attribute('value')) Filter_List = Select(driver.find_element(By.CLASS_NAME, "product_sort_container")) time.sleep(5) Filter_List.select_by_value("lohi") time.sleep(10) #log.info(button_login.get_attribute('value')) driver.quit()