diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0e2486c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2372a69 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/pytest_course_viktor.iml b/.idea/pytest_course_viktor.iml new file mode 100644 index 0000000..f4efaa4 --- /dev/null +++ b/.idea/pytest_course_viktor.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lesson1/test_add_to_cart.py b/lesson1/test_add_to_cart.py new file mode 100644 index 0000000..41270da --- /dev/null +++ b/lesson1/test_add_to_cart.py @@ -0,0 +1,75 @@ +from selenium import webdriver +from selenium.webdriver.common.by import By +import time + +driver = webdriver.Chrome() + + +def test_add_to_cart(): + driver.get("https://www.saucedemo.com/") + + username_field = driver.find_element(By.XPATH, '//input[@data-test="username"]') + username_field.send_keys("standard_user") + + password_field = driver.find_element(By.XPATH, '//input[@data-test="password"]') + password_field.send_keys("secret_sauce") + + login_button = driver.find_element(By.XPATH, '//input[@data-test="login-button"]') + login_button.click() + + text_before = driver.find_element(By.XPATH, '//*[@id="item_4_title_link"]/div').text + add_to_cart_button = driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-backpack"]') + add_to_cart_button.click() + + time.sleep(3) + + cart_button = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a') + cart_button.click() + + cart_badge = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a/span') + text_after = driver.find_element(By.XPATH, '//*[@id="item_4_title_link"]/div').text + remove_button = driver.find_element(By.XPATH, '//*[@id="remove-sauce-labs-backpack"]') + + assert cart_badge.text == '1' + assert driver.current_url == "https://www.saucedemo.com/cart.html" + assert text_before == text_after + assert remove_button.text == "Remove" + + driver.quit() +from selenium import webdriver +from selenium.webdriver.common.by import By +import time + +driver = webdriver.Chrome() + +def test_add_to_cart(): + driver.get("https://www.saucedemo.com/") + + username_field = driver.find_element(By.XPATH, '//input[@data-test="username"]') + username_field.send_keys("standard_user") + + password_field = driver.find_element(By.XPATH, '//input[@data-test="password"]') + password_field.send_keys("secret_sauce") + + login_button = driver.find_element(By.XPATH, '//input[@data-test="login-button"]') + login_button.click() + + text_before = driver.find_element(By.XPATH, '//*[@id="item_4_title_link"]/div').text + add_to_cart_button = driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-backpack"]') + add_to_cart_button.click() + + time.sleep(3) + + cart_button = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a') + cart_button.click() + + cart_badge = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a/span') + text_after = driver.find_element(By.XPATH, '//*[@id="item_4_title_link"]/div').text + remove_button = driver.find_element(By.XPATH, '//*[@id="remove-sauce-labs-backpack"]') + + assert cart_badge.text == '1' + assert driver.current_url == "https://www.saucedemo.com/cart.html" + assert text_before == text_after + assert remove_button.text == "Remove" + + driver.quit() diff --git a/lesson1/test_add_to_cart_from_item_card.py b/lesson1/test_add_to_cart_from_item_card.py new file mode 100644 index 0000000..75baa09 --- /dev/null +++ b/lesson1/test_add_to_cart_from_item_card.py @@ -0,0 +1,43 @@ +from selenium import webdriver +from selenium.webdriver.common.by import By +import time + +driver = webdriver.Chrome() + + +def test_add_to_cart_from_item_card(): + driver.get("https://www.saucedemo.com/") + + username_field = driver.find_element(By.XPATH, '//input[@data-test="username"]') + username_field.send_keys("standard_user") + + password_field = driver.find_element(By.XPATH, '//input[@data-test="password"]') + password_field.send_keys("secret_sauce") + + login_button = driver.find_element(By.XPATH, '//input[@data-test="login-button"]') + login_button.click() + + # text_before = driver.find_element(By.XPATH, '//*[@id="item_4_title_link"]/div').text + + item_button = driver.find_element(By.XPATH, '//*[@id="item_4_title_link"]/div') + item_button.click() + + add_to_cart_button = driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-backpack"]') + add_to_cart_button.click() + + + time.sleep(3) + + cart_button = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a') + cart_button.click() + + cart_badge = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a/span') + remove_button = driver.find_element(By.XPATH, '//*[@id="remove-sauce-labs-backpack"]') + + + assert cart_badge.text == '1' + assert driver.current_url == "https://www.saucedemo.com/cart.html" + assert remove_button.text == "Remove" + assert driver.find_element(By.XPATH, '//*[@id="cart_contents_container"]/div/div[1]/div[3]/div[2]').is_displayed() + + driver.quit() diff --git a/lesson1/test_item_image_and_title.py b/lesson1/test_item_image_and_title.py new file mode 100644 index 0000000..aa5ed3d --- /dev/null +++ b/lesson1/test_item_image_and_title.py @@ -0,0 +1,55 @@ +# Карточка товара +# Успешный переход к карточке товара после клика на картинку товара +# Успешный переход к карточке товара после клика на название товара + + +from selenium import webdriver +from selenium.webdriver.common.by import By +import time + +driver = webdriver.Chrome() + + +def test_item_image(): + driver.get("https://www.saucedemo.com/") + + username_field = driver.find_element(By.XPATH, '//input[@data-test="username"]') + username_field.send_keys("standard_user") + + password_field = driver.find_element(By.XPATH, '//input[@data-test="password"]') + password_field.send_keys("secret_sauce") + + login_button = driver.find_element(By.XPATH, '//input[@data-test="login-button"]') + login_button.click() + + # clicking on the item image + item_image = driver.find_element(By.XPATH, '//*[@id="item_4_img_link"]/img') + item_image.click() + time.sleep(1) + + assert driver.current_url == "https://www.saucedemo.com/inventory-item.html?id=4" + assert "Sauce Labs Backpack" in driver.page_source + + driver.quit() + +def test_item_title(): + driver.get("https://www.saucedemo.com/") + + username_field = driver.find_element(By.XPATH, '//input[@data-test="username"]') + username_field.send_keys("standard_user") + + password_field = driver.find_element(By.XPATH, '//input[@data-test="password"]') + password_field.send_keys("secret_sauce") + + login_button = driver.find_element(By.XPATH, '//input[@data-test="login-button"]') + login_button.click() + + + # clicking on the item title + item_title = driver.find_element(By.XPATH, '//*[@id="item_4_title_link"]/div') + item_title.click() + time.sleep(1) + + assert driver.current_url == "https://www.saucedemo.com/inventory-item.html?id=4" + assert "Sauce Labs Backpack" in driver.page_source + driver.quit() \ No newline at end of file diff --git a/lesson1/test_remove_from_cart.py b/lesson1/test_remove_from_cart.py new file mode 100644 index 0000000..e69de29 diff --git a/lesson1/test_remove_from_cart_from_item_card.py b/lesson1/test_remove_from_cart_from_item_card.py new file mode 100644 index 0000000..55c42a9 --- /dev/null +++ b/lesson1/test_remove_from_cart_from_item_card.py @@ -0,0 +1,43 @@ +from selenium import webdriver +from selenium.webdriver.common.by import By +import time + +driver = webdriver.Chrome() + + +def test_remove_from_cart_from_item_card(): + driver.get("https://www.saucedemo.com/") + + username_field = driver.find_element(By.XPATH, '//input[@data-test="username"]') + username_field.send_keys("standard_user") + + password_field = driver.find_element(By.XPATH, '//input[@data-test="password"]') + password_field.send_keys("secret_sauce") + + login_button = driver.find_element(By.XPATH, '//input[@data-test="login-button"]') + login_button.click() + + item_button = driver.find_element(By.XPATH, '//*[@id="item_4_title_link"]/div') + item_button.click() + + # adding item to the cart + add_to_cart_button = driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-backpack"]') + add_to_cart_button.click() + time.sleep(3) + + # removing item from the item card + remove_button = driver.find_element(By.XPATH, '//*[@id="remove-sauce-labs-backpack"]') + remove_button.click() + time.sleep(3) + + # assert add_to_cart_button.is_displayed() + assert "Remove" not in driver.page_source + assert "Add to cart" in driver.page_source + + cart_button = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a') + cart_button.click() + time.sleep(3) + + assert "Sauce Labs Backpack" not in driver.page_source + + driver.quit()