Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions lesson1/check_filter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()


def test_filter_A_Z():
driver.get("https://www.saucedemo.com/")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

#container_sort = driver.find_element(By.CLASS_NAME, '[class="product_sort_container"]')
#container_sort.click()
# find all elements
all_elem_ZA = driver.find_elements(By.XPATH, "//*[contains(text(), 'Sauce Labs')]")
# mix the elements
driver.find_element(By.XPATH, '//*[@id="header_container"]//select').click()
sort_element = driver.find_element(By.XPATH, '//*[@id="header_container"]//option[2]')
sort_element.click()
time.sleep(3)
all_elem_ZA = driver.find_elements(By.CSS_SELECTOR, 'inventory_item_name ')

# click item in menu
sort_element = driver.find_element(By.XPATH, '//*[@id="header_container"]//option[1]')
sort_element.click()
time.sleep(3)
all_elem_AZ = driver.find_elements(By.CSS_SELECTOR, 'inventory_item_name ')
print(len(all_elem_AZ))
for a in all_elem_AZ:
print(a.text)
assert all_elem_AZ == all_elem_ZA
22 changes: 22 additions & 0 deletions lesson1/go_to_item_card_by_pic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()


def test_go_to_item_card_by_pic():
driver.get("https://www.saucedemo.com/inventory.html")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

# click on img
driver.find_element(By.CSS_SELECTOR, "a#item_3_img_link").click()

# check item card
item_URL = driver.current_url
expected_URL = "https://www.saucedemo.com/inventory-item.html?id=3"

assert expected_URL == item_URL

21 changes: 21 additions & 0 deletions lesson1/go_to_item_card_by_title.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()


def test_go_to_item_card_by_title():
driver.get("https://www.saucedemo.com/inventory.html")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

# click on title
driver.find_element(By.CSS_SELECTOR, "#item_5_title_link > div").click()

# check item card
expected_title = "Sauce Labs Fleece Jacket"
actual_title = driver.find_element(By.XPATH, "//*[contains(text(),'Sauce Labs Fleece Jacket')]").text

assert expected_title == actual_title
23 changes: 23 additions & 0 deletions lesson1/test_add_item_from_card.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()


def test_add_item_from_card():
driver.get("https://www.saucedemo.com/inventory.html")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

# add item
driver.find_element(By.CSS_SELECTOR, "#item_0_title_link > div").click()
driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-bike-light"]').click()
# go to cart and check it
driver.find_element(By.CSS_SELECTOR, "a[class='shopping_cart_link']").click()
# check item in cart
expected_name = "Sauce Labs Bike Light"
actual_name = driver.find_element(By.XPATH, "//*[contains(text(),'Sauce Labs Bike Light')]").text

assert expected_name == actual_name
44 changes: 44 additions & 0 deletions lesson1/test_add_item_from_catalog.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()


def test_add_item_from_catalog():
driver.get("https://www.saucedemo.com/inventory.html")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

# add item
driver.find_element(By.XPATH, '// *[ @ id = "add-to-cart-sauce-labs-bike-light"]').click()
# go to cart and check it
driver.find_element(By.CSS_SELECTOR, "a[class='shopping_cart_link']").click()
# check item in cart
expected_name = "Sauce Labs Bike Light"
actual_name = driver.find_element(By.XPATH, "//*[contains(text(),'Sauce Labs Bike Light')]").text

assert expected_name == actual_name


def test_remove_good_from_cart():
driver.get("https://www.saucedemo.com/")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

# select item
# add item 1 to cart
driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-backpack"]').click()
# add item 2 to cart
driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-bolt-t-shirt"]').click()
# go to cart and check it
driver.find_element(By.CSS_SELECTOR, "a[class='shopping_cart_link']").click()
count_before_removing = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a/span').text
#item_in_cart = driver.find_element(By.XPATH, '//*[@id="item_1_title_link"]/div [contains(text(), "Sauce Labs Bolt T-Shirt")]')
driver.find_element(By.XPATH, '//*[@id="remove-sauce-labs-bolt-t-shirt"]').click()
count_after_removing = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a/span').text

assert int(count_after_removing) == int(count_before_removing) - 1
24 changes: 24 additions & 0 deletions lesson1/test_add_to_cart.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()


def test_add_good_to_cart():
driver.get("https://www.saucedemo.com/")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()
# select item
text_before = driver.find_element(By.CSS_SELECTOR, "a[id='item_1_title_link']").text

# add item to cart
driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-bolt-t-shirt"]').click()

# go to cart and check it
driver.find_element(By.CSS_SELECTOR, "a[class='shopping_cart_link']").click()
text_after = driver.find_element(By.CSS_SELECTOR, "a[id='item_1_title_link'] > div[class='inventory_item_name']").text

assert text_before == text_after
13 changes: 1 addition & 12 deletions lesson1/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
driver = webdriver.Chrome()



def test_login_form():
driver.get("https://www.saucedemo.com/")

Expand All @@ -18,17 +17,7 @@ def test_login_form():
login_button = driver.find_element(By.XPATH, '//input[@data-test="login-button"]')
login_button.click()

time.sleep(5)
time.sleep(3)
assert driver.current_url == "https://www.saucedemo.com/inventory.html"

driver.quit()










20 changes: 20 additions & 0 deletions lesson1/test_auth_noncorrect.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()


def test_login_form_noncorrect():
driver.get("https://www.saucedemo.com/")

username_field = driver.find_element(By.XPATH, '//input[@data-test="username"]')
username_field.send_keys("other_user")

password_field = driver.find_element(By.XPATH, '//input[@data-test="password"]')
password_field.send_keys("just_sauce")

expected_error_message = driver.find_element(By.CSS_SELECTOR, '[class="error-message-container"] ')

assert expected_error_message.is_displayed()

driver.quit()
24 changes: 24 additions & 0 deletions lesson1/test_button_about.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()


def test_check_button_about():
driver.get("https://www.saucedemo.com/")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

driver.find_element(By.ID, 'react-burger-menu-btn').click()
time.sleep(1)
# click item in menu
menu_about = driver.find_element(By.ID, 'about_sidebar_link')
menu_about.click()
time.sleep(1)
url_actual = driver.current_url
url_expected = "https://saucelabs.com/"
assert url_actual == url_expected

34 changes: 34 additions & 0 deletions lesson1/test_button_logout.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()


def test_logout():
driver.get("https://www.saucedemo.com/")
url_before = driver.current_url

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()
# в левой части есть меню магазина, там команда logout
burger_menu = driver.find_element(By.ID, "react-burger-menu-btn")
burger_menu.click()
time.sleep(3)

logout = driver.find_element(By.CSS_SELECTOR, "#logout_sidebar_link")
logout.click()
time.sleep(1)

# если вышел , то возврат на начальную страницу, можно проверить через УРЛ
url_after = driver.current_url
#print(url_after)

assert url_after == url_before
driver.quit() #когда будет закрывающая фикстура, то удалить
35 changes: 35 additions & 0 deletions lesson1/test_button_reset_sidebar.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
# bag: buttons reset remain ON


def test_check_button_reset():
driver.get("https://www.saucedemo.com/")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

# add items to cart
driver.find_element(By.ID, "add-to-cart-sauce-labs-bike-light").click()
driver.find_element(By.ID, "add-to-cart-sauce-labs-backpack").click()

# check nr of items in cart
time.sleep(1)
item_in_the_cart = driver.find_element(By.XPATH, "//span[@class='shopping_cart_badge']")
items_before = item_in_the_cart.text # == '2'

#go to burger menu
driver.find_element(By.ID, 'react-burger-menu-btn').click()
time.sleep(1)
# click item reset in menu
driver.find_element(By.ID, 'reset_sidebar_link').click()
buttons_remove = driver.find_elements(By.CSS_SELECTOR, '*[name^="remove"]')

item_in_the_cart = driver.find_element(By.CSS_SELECTOR, "a.shopping_cart_link")
items_after = item_in_the_cart.text # == '0'
assert items_after == "", "cart is not empty"
assert len(buttons_remove) == 0, "cart is empty, but buttons Remove are still on"
42 changes: 42 additions & 0 deletions lesson1/test_remove_good_from_cart.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()


def test_remove_good_from_cart():
driver.get("https://www.saucedemo.com/")
# authorization
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()

# select item
# add item 1 to cart
driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-backpack"]').click()
# add item 2 to cart
driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-bolt-t-shirt"]').click()
# go to cart and check it
driver.find_element(By.CSS_SELECTOR, "a[class='shopping_cart_link']").click()
count_before_removing = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a/span').text
#item_in_cart = driver.find_element(By.XPATH, '//*[@id="item_1_title_link"]/div [contains(text(), "Sauce Labs Bolt T-Shirt")]')
driver.find_element(By.XPATH, '//*[@id="remove-sauce-labs-bolt-t-shirt"]').click()
count_after_removing = driver.find_element(By.XPATH, '//*[@id="shopping_cart_container"]/a/span').text

assert int(count_after_removing) == int(count_before_removing) - 1


def test_remove_good_from_cart2():
driver.get("https://www.saucedemo.com/inventory.html")
driver.find_element(By.XPATH, '//input[@data-test="username"]').send_keys("standard_user")
driver.find_element(By.XPATH, '//input[@data-test="password"]').send_keys("secret_sauce")
driver.find_element(By.XPATH, '//input[@data-test="login-button"]').click()
driver.find_element(By.XPATH, '//*[@id="add-to-cart-sauce-labs-backpack"]').click()
driver.find_element(By.CSS_SELECTOR, "a[class='shopping_cart_link']").click()
driver.find_element(By.XPATH, '//*[@id="remove-sauce-labs-backpack"]').click()

assert len(driver.find_elements(By.ID, 'item_4_title_link')) == 0



3 changes: 2 additions & 1 deletion lesson2/test_scope_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@ def test_outside_class():

# для запуска необходимо использовать
# pytest -s -v --setup-show test_scope_example.py

# параметр --setup-show показывает, как отрабатывают фикстуры, как они используются
# запустить отдельный тест из файла: pytest -s -v --setup-show test_scope_example.py::test_outside_class()
Loading