|
@@ -88,9 +88,20 @@ class TestSauceDemo:
|
|
checkout = self.driver.find_element(By.CSS_SELECTOR, "#checkout")
|
|
checkout = self.driver.find_element(By.CSS_SELECTOR, "#checkout")
|
|
checkout.click()
|
|
checkout.click()
|
|
|
|
|
|
|
|
+ def fill_checkout(self,name1,name2,zip):
|
|
|
|
+ first_name=self.driver.find_element(By.ID,"first-name")
|
|
|
|
+ last_name=self.driver.find_element(By.ID,"last-name")
|
|
|
|
+ zip_code=self.driver.find_element(By.ID,"postal-code")
|
|
|
|
+
|
|
|
|
+ writeInInput(inputElement=first_name, text=name1)
|
|
|
|
+ writeInInput(inputElement=last_name, text=name2)
|
|
|
|
+ writeInInput(inputElement=zip_code, text=zip)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
##### TEST ABBAS
|
|
##### TEST ABBAS
|
|
|
|
|
|
- @pytest.mark.skip("")
|
|
|
|
|
|
+ #@pytest.mark.skip("")
|
|
def test_saucedemo_boutenbout(self):
|
|
def test_saucedemo_boutenbout(self):
|
|
self.login()
|
|
self.login()
|
|
self.logout()
|
|
self.logout()
|
|
@@ -99,7 +110,7 @@ class TestSauceDemo:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- @pytest.mark.skip("")
|
|
|
|
|
|
+ #@pytest.mark.skip("")
|
|
def test_login_bad_username(self):
|
|
def test_login_bad_username(self):
|
|
self.login_custum("test", "secret_sauce")
|
|
self.login_custum("test", "secret_sauce")
|
|
|
|
|
|
@@ -111,7 +122,7 @@ class TestSauceDemo:
|
|
== "Epic sadface: Username and password do not match any user in this service"
|
|
== "Epic sadface: Username and password do not match any user in this service"
|
|
), "le message est erroné"
|
|
), "le message est erroné"
|
|
|
|
|
|
- @pytest.mark.skip("")
|
|
|
|
|
|
+ #@pytest.mark.skip("")
|
|
def test_login_bad_passwrd(self):
|
|
def test_login_bad_passwrd(self):
|
|
self.login_custum("standard_user", "test")
|
|
self.login_custum("standard_user", "test")
|
|
|
|
|
|
@@ -147,9 +158,154 @@ class TestSauceDemo:
|
|
== "https://www.saucedemo.com/checkout-step-one.html"
|
|
== "https://www.saucedemo.com/checkout-step-one.html"
|
|
), "Nous ne somme pas sur la bonne page"
|
|
), "Nous ne somme pas sur la bonne page"
|
|
|
|
|
|
|
|
+
|
|
|
|
+ def test_Checkout_3_champs_vides(self):
|
|
|
|
+ log.info("Test Checkout avec tous les champs vides")
|
|
|
|
+
|
|
|
|
+ # connexion Swag Labs
|
|
|
|
+ self.login()
|
|
|
|
+
|
|
|
|
+ # ajout "Sauce Labs Bike Light" au panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ self.add_item("bike-light")
|
|
|
|
+
|
|
|
|
+ # affichage panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ panier_btn = self.driver.find_element(By.ID, "shopping_cart_container")
|
|
|
|
+ panier_btn.click()
|
|
|
|
+
|
|
|
|
+ # redirection vers la page de checkout
|
|
|
|
+ self.go_to_checkout()
|
|
|
|
+
|
|
|
|
+ self.fill_checkout("","","")
|
|
|
|
+
|
|
|
|
+ continue_btn = self.driver.find_element(By.ID, "continue")
|
|
|
|
+ continue_btn.click()
|
|
|
|
+
|
|
|
|
+ erreur_message = self.driver.find_element(By.CSS_SELECTOR, "[data-test=error]")
|
|
|
|
+
|
|
|
|
+ assert erreur_message.is_displayed(), "Pas de message d'erreur "
|
|
|
|
+ assert (
|
|
|
|
+ erreur_message.text
|
|
|
|
+ == "Error: First Name is required"
|
|
|
|
+ ), "le message est erroné"
|
|
|
|
+
|
|
|
|
+ def test_Checkout_first_name_vide(self):
|
|
|
|
+ log.info("Test Checkout avec le champ first name vide")
|
|
|
|
+
|
|
|
|
+ # connexion Swag Labs
|
|
|
|
+ self.login()
|
|
|
|
+
|
|
|
|
+ # ajout "Sauce Labs Bike Light" au panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ self.add_item("bike-light")
|
|
|
|
+
|
|
|
|
+ # affichage panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ panier_btn = self.driver.find_element(By.ID, "shopping_cart_container")
|
|
|
|
+ panier_btn.click()
|
|
|
|
+
|
|
|
|
+ # redirection vers la page de checkout
|
|
|
|
+ self.go_to_checkout()
|
|
|
|
+
|
|
|
|
+ self.fill_checkout("","Familly_name","999999")
|
|
|
|
+
|
|
|
|
+ continue_btn = self.driver.find_element(By.ID, "continue")
|
|
|
|
+ continue_btn.click()
|
|
|
|
+
|
|
|
|
+ erreur_message = self.driver.find_element(By.CSS_SELECTOR, "[data-test=error]")
|
|
|
|
+
|
|
|
|
+ assert erreur_message.is_displayed(), "Pas de message d'erreur "
|
|
|
|
+ assert (
|
|
|
|
+ erreur_message.text
|
|
|
|
+ == "Error: First Name is required"
|
|
|
|
+ ), "le message est erroné"
|
|
|
|
+
|
|
|
|
+ def test_Checkout_first_name_vide(self):
|
|
|
|
+ log.info("Test Checkout avec le champ last name vide")
|
|
|
|
+
|
|
|
|
+ # connexion Swag Labs
|
|
|
|
+ self.login()
|
|
|
|
+
|
|
|
|
+ # ajout "Sauce Labs Bike Light" au panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ self.add_item("bike-light")
|
|
|
|
+
|
|
|
|
+ # affichage panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ panier_btn = self.driver.find_element(By.ID, "shopping_cart_container")
|
|
|
|
+ panier_btn.click()
|
|
|
|
+
|
|
|
|
+ # redirection vers la page de checkout
|
|
|
|
+ self.go_to_checkout()
|
|
|
|
+
|
|
|
|
+ self.fill_checkout("First","","999999")
|
|
|
|
+
|
|
|
|
+ continue_btn = self.driver.find_element(By.ID, "continue")
|
|
|
|
+ continue_btn.click()
|
|
|
|
+
|
|
|
|
+ erreur_message = self.driver.find_element(By.CSS_SELECTOR, "[data-test=error]")
|
|
|
|
+
|
|
|
|
+ assert erreur_message.is_displayed(), "Pas de message d'erreur "
|
|
|
|
+
|
|
|
|
+ assert (
|
|
|
|
+ erreur_message.text
|
|
|
|
+ == "Error: Last Name is required"
|
|
|
|
+ ), "le message est erroné"
|
|
|
|
+
|
|
|
|
+ def test_Checkout_first_name_vide(self):
|
|
|
|
+ log.info("Test Checkout avec le champ zip code vide")
|
|
|
|
+
|
|
|
|
+ # connexion Swag Labs
|
|
|
|
+ self.login()
|
|
|
|
+
|
|
|
|
+ # ajout "Sauce Labs Bike Light" au panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ self.add_item("bike-light")
|
|
|
|
+
|
|
|
|
+ # affichage panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ panier_btn = self.driver.find_element(By.ID, "shopping_cart_container")
|
|
|
|
+ panier_btn.click()
|
|
|
|
+
|
|
|
|
+ # redirection vers la page de checkout
|
|
|
|
+ self.go_to_checkout()
|
|
|
|
+
|
|
|
|
+ self.fill_checkout("First","Familly_name","")
|
|
|
|
+
|
|
|
|
+ continue_btn = self.driver.find_element(By.ID, "continue")
|
|
|
|
+ continue_btn.click()
|
|
|
|
+
|
|
|
|
+ erreur_message = self.driver.find_element(By.CSS_SELECTOR, "[data-test=error]")
|
|
|
|
+
|
|
|
|
+ assert erreur_message.is_displayed(), "Pas de message d'erreur "
|
|
|
|
+ assert (
|
|
|
|
+ erreur_message.text
|
|
|
|
+ == "Error: Postal Code is required"
|
|
|
|
+ ), "le message est erroné"
|
|
|
|
+
|
|
|
|
+ def test_Checkout_ok(self):
|
|
|
|
+ log.info("Test Checkout OK")
|
|
|
|
+
|
|
|
|
+ # connexion Swag Labs
|
|
|
|
+ self.login()
|
|
|
|
+
|
|
|
|
+ # ajout "Sauce Labs Bike Light" au panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ self.add_item("bike-light")
|
|
|
|
+
|
|
|
|
+ # affichage panier -- A changer si Tiff implémente une fonction pour le faire
|
|
|
|
+ panier_btn = self.driver.find_element(By.ID, "shopping_cart_container")
|
|
|
|
+ panier_btn.click()
|
|
|
|
+
|
|
|
|
+ # redirection vers la page de checkout
|
|
|
|
+ self.go_to_checkout()
|
|
|
|
+
|
|
|
|
+ self.fill_checkout("First","Familly_name","9999")
|
|
|
|
+
|
|
|
|
+ continue_btn = self.driver.find_element(By.ID, "continue")
|
|
|
|
+ continue_btn.click()
|
|
|
|
+
|
|
|
|
+ assert (
|
|
|
|
+ self.driver.current_url
|
|
|
|
+ == "https://www.saucedemo.com/checkout-step-two.html"
|
|
|
|
+ ), "Nous ne somme pas sur la bonne page"
|
|
|
|
+
|
|
|
|
+
|
|
##### TEST TIFF
|
|
##### TEST TIFF
|
|
|
|
|
|
- @pytest.mark.skip("")
|
|
|
|
|
|
+ #@pytest.mark.skip("")
|
|
def test_add_item(self):
|
|
def test_add_item(self):
|
|
self.login()
|
|
self.login()
|
|
sauce_labs_item = self.add_item("backpack")
|
|
sauce_labs_item = self.add_item("backpack")
|