|
@@ -0,0 +1,186 @@
|
|
|
+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
|
|
|
+
|
|
|
+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)
|
|
|
+def element_visible_actif(elem):
|
|
|
+ assert elem.is_displayed()
|
|
|
+ assert elem.is_enabled()
|
|
|
+
|
|
|
+# @pytest.mark.skip("skip")
|
|
|
+def test_login_et_logout_ok_saucedemo():
|
|
|
+
|
|
|
+ log.info("login et logout ok")
|
|
|
+
|
|
|
+ options = webdriver.FirefoxOptions()
|
|
|
+ options.add_argument('--headless')
|
|
|
+ driver = webdriver.Firefox(options=options)
|
|
|
+
|
|
|
+ #driver = webdriver.Chrome()
|
|
|
+
|
|
|
+ url_sauce_demo="https://www.saucedemo.com/"
|
|
|
+ driver.get(url_sauce_demo)
|
|
|
+ assert driver.current_url == url_sauce_demo, "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"
|
|
|
+
|
|
|
+ button_burger= driver.find_element(By.ID,"react-burger-menu-btn")
|
|
|
+ element_visible_actif(button_burger)
|
|
|
+ button_burger.click()
|
|
|
+ time.sleep(2)
|
|
|
+ button_logout= driver.find_element(By.ID,"logout_sidebar_link")
|
|
|
+ element_visible_actif(button_logout)
|
|
|
+ button_logout.click()
|
|
|
+ driver.quit()
|
|
|
+
|
|
|
+
|
|
|
+# @pytest.mark.skip("skip")
|
|
|
+def test_about_ok_saucedemo():
|
|
|
+
|
|
|
+ log.info("about ok")
|
|
|
+
|
|
|
+ options = webdriver.FirefoxOptions()
|
|
|
+ options.add_argument('--headless')
|
|
|
+ driver = webdriver.Firefox(options=options)
|
|
|
+
|
|
|
+ #driver = webdriver.Chrome()
|
|
|
+
|
|
|
+ url_sauce_demo="https://www.saucedemo.com/"
|
|
|
+ driver.get(url_sauce_demo)
|
|
|
+ assert driver.current_url == url_sauce_demo, "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"
|
|
|
+
|
|
|
+ button_burger= driver.find_element(By.ID,"react-burger-menu-btn")
|
|
|
+ element_visible_actif(button_burger)
|
|
|
+ button_burger.click()
|
|
|
+ time.sleep(2)
|
|
|
+ button_about= driver.find_element(By.ID,"about_sidebar_link")
|
|
|
+ element_visible_actif(button_about)
|
|
|
+ button_about.click()
|
|
|
+ assert driver.current_url == "https://saucelabs.com/", "Nous ne somme pas sur la bonne page"
|
|
|
+ driver.quit()
|
|
|
+
|
|
|
+# @pytest.mark.skip("skip")
|
|
|
+def test_footer_copy():
|
|
|
+
|
|
|
+ log.info("la présence d'élément footer_copy")
|
|
|
+
|
|
|
+ options = webdriver.FirefoxOptions()
|
|
|
+ options.add_argument('--headless')
|
|
|
+ driver = webdriver.Firefox(options=options)
|
|
|
+
|
|
|
+ #driver = webdriver.Chrome()
|
|
|
+
|
|
|
+
|
|
|
+ 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"
|
|
|
+ assert "Privacy Policy" in driver.find_element(By.CLASS_NAME, "footer").text, "Privacy Policy n'est pas dans le footer"
|
|
|
+
|
|
|
+ driver.quit()
|
|
|
+
|
|
|
+# @pytest.mark.skip("skip")
|
|
|
+def test_footer_twitter():
|
|
|
+
|
|
|
+ log.info("la présence d'élément footer_twitter")
|
|
|
+
|
|
|
+ options = webdriver.FirefoxOptions()
|
|
|
+ options.add_argument('--headless')
|
|
|
+ driver = webdriver.Firefox(options=options)
|
|
|
+
|
|
|
+ # driver = webdriver.Chrome()
|
|
|
+
|
|
|
+
|
|
|
+ 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"
|
|
|
+ twitter_lien = driver.find_element(By.LINK_TEXT, "Twitter")
|
|
|
+ twitter_lien.click()
|
|
|
+ time.sleep(2)
|
|
|
+ #assert driver.current_url == "https://twitter.com/saucelabs", "Nous ne somme pas sur la bonne page"
|
|
|
+ driver.quit()
|
|
|
+
|
|
|
+
|
|
|
+# @pytest.mark.skip("skip")
|
|
|
+def test_footer_facebook():
|
|
|
+
|
|
|
+ log.info("la présence d'élément footer_facebook")
|
|
|
+
|
|
|
+ options = webdriver.FirefoxOptions()
|
|
|
+ options.add_argument('--headless')
|
|
|
+ driver = webdriver.Firefox(options=options)
|
|
|
+
|
|
|
+ #driver = webdriver.Chrome()
|
|
|
+
|
|
|
+
|
|
|
+ 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"
|
|
|
+ twitter_lien = driver.find_element(By.LINK_TEXT, "Facebook")
|
|
|
+ twitter_lien.click()
|
|
|
+ time.sleep(2)
|
|
|
+ #assert driver.current_url == "https://www.facebook.com/saucelabs", "Nous ne somme pas sur la bonne page"
|
|
|
+ driver.quit()
|
|
|
+
|
|
|
+# @pytest.mark.skip("skip")
|
|
|
+def test_footer_linkedin():
|
|
|
+
|
|
|
+ log.info("la présence d'élément footer_linkedin")
|
|
|
+
|
|
|
+ options = webdriver.FirefoxOptions()
|
|
|
+ options.add_argument('--headless')
|
|
|
+ driver = webdriver.Firefox(options=options)
|
|
|
+
|
|
|
+ #driver = webdriver.Chrome()
|
|
|
+
|
|
|
+
|
|
|
+ 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"
|
|
|
+ twitter_lien = driver.find_element(By.LINK_TEXT, "LinkedIn")
|
|
|
+ twitter_lien.click()
|
|
|
+ time.sleep(3)
|
|
|
+ #assert driver.current_url == "https://www.linkedin.com/company/sauce-labs/", "Nous ne somme pas sur la bonne page"
|
|
|
+ driver.quit()
|