From d0d613a8c688f5a03c9731d44ec4fa7ddcc5b513 Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 11:07:02 +0700 Subject: [PATCH 01/12] Update lesson_7_calc_base.py --- lesson_7_calc_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_7_calc_base.py b/lesson_7_calc_base.py index 86df29e..174f198 100644 --- a/lesson_7_calc_base.py +++ b/lesson_7_calc_base.py @@ -34,4 +34,4 @@ def wait_for_result(self, expected_result, timeout=50): WebDriverWait(self.driver, timeout).until( lambda driver: driver.find_element(*self.result_field).text == expected_result ) - print(f"✅ Результат {expected_result} отобразился!") \ No newline at end of file + print(f"✅ Результат {expected_result} отобразился!") From 1181ae6afd9190e5f2b0efb77d210fd50bc9c2e1 Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 11:07:53 +0700 Subject: [PATCH 02/12] Update lesson_7_calc_test.py --- lesson_7_calc_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_7_calc_test.py b/lesson_7_calc_test.py index 5e64633..ce68933 100644 --- a/lesson_7_calc_test.py +++ b/lesson_7_calc_test.py @@ -25,4 +25,4 @@ def test_calculator_with_delay(): driver.quit() if __name__ == "__main__": - test_calculator_with_delay() \ No newline at end of file + test_calculator_with_delay() From 14bf7ab8388252d801f79e9ee714d08d5007e2cc Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 11:08:00 +0700 Subject: [PATCH 03/12] Update lesson_7_shop_cart.py --- lesson_7_shop_cart.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_7_shop_cart.py b/lesson_7_shop_cart.py index c31112c..e967500 100644 --- a/lesson_7_shop_cart.py +++ b/lesson_7_shop_cart.py @@ -14,4 +14,4 @@ def click_checkout(self): return CheckoutPage(self.driver) def get_cart_items_count(self): - return len(self.driver.find_elements(*self.cart_items)) \ No newline at end of file + return len(self.driver.find_elements(*self.cart_items)) From b5a2eb01972b66aa103cb185be8ef7e05ee5f90a Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 11:08:10 +0700 Subject: [PATCH 04/12] Update lesson_7_shop_check.py --- lesson_7_shop_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_7_shop_check.py b/lesson_7_shop_check.py index d55f2af..8aa8ff8 100644 --- a/lesson_7_shop_check.py +++ b/lesson_7_shop_check.py @@ -20,4 +20,4 @@ def fill_checkout_form(self, first_name, last_name, postal_code): def get_total_amount(self): self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") total_text = self.driver.find_element(*self.total_amount).text - return total_text.replace("Total: $", "") \ No newline at end of file + return total_text.replace("Total: $", "") From 5319139cf4c09a3439fb975ee30ab5653a4a5d8c Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 11:08:17 +0700 Subject: [PATCH 05/12] Update lesson_7_shop_login.py --- lesson_7_shop_login.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_7_shop_login.py b/lesson_7_shop_login.py index 83bde4e..80f99fd 100644 --- a/lesson_7_shop_login.py +++ b/lesson_7_shop_login.py @@ -19,4 +19,4 @@ def login(self, username, password): self.driver.find_element(*self.login_button).click() def get_error_message(self): - return self.driver.find_element(*self.error_message).text \ No newline at end of file + return self.driver.find_element(*self.error_message).text From 152e75dc8527b1ecc88d898241da1ade12da6b19 Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 11:08:24 +0700 Subject: [PATCH 06/12] Update lesson_7_shop_ppage.py --- lesson_7_shop_ppage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_7_shop_ppage.py b/lesson_7_shop_ppage.py index 98d48e4..7459b69 100644 --- a/lesson_7_shop_ppage.py +++ b/lesson_7_shop_ppage.py @@ -20,4 +20,4 @@ def add_product_to_cart(self, product_name): def go_to_cart(self): self.driver.find_element(*self.shopping_cart).click() - return CartPage(self.driver) \ No newline at end of file + return CartPage(self.driver) From c5150fea3840861fdf1915b5ec79f01cfd002c10 Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 11:08:30 +0700 Subject: [PATCH 07/12] Update lesson_7_shop_test.py --- lesson_7_shop_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_7_shop_test.py b/lesson_7_shop_test.py index 7958f30..1804263 100644 --- a/lesson_7_shop_test.py +++ b/lesson_7_shop_test.py @@ -35,4 +35,4 @@ def test_sauce_demo_checkout(): driver.quit() if __name__ == "__main__": - test_sauce_demo_checkout() \ No newline at end of file + test_sauce_demo_checkout() From 4763d30ba11085df4a272f216da526dd6858a874 Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 15:49:47 +0700 Subject: [PATCH 08/12] Update lesson_7_calc_base.py --- lesson_7_calc_base.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lesson_7_calc_base.py b/lesson_7_calc_base.py index 174f198..ff47f8e 100644 --- a/lesson_7_calc_base.py +++ b/lesson_7_calc_base.py @@ -19,19 +19,17 @@ def open(self): self.driver.get("https://bonigarcia.dev/selenium-webdriver-java/slow-calculator.html") def set_delay(self, delay_seconds): - """Устанавливает задержку вычислений""" delay_input = self.driver.find_element(*self.delay_field) delay_input.clear() delay_input.send_keys(str(delay_seconds)) def click_button(self, button): - """Нажимает кнопку калькулятора""" button_locator = self.buttons[button] self.driver.find_element(*button_locator).click() def wait_for_result(self, expected_result, timeout=50): - """Ждет пока результат не станет равен expected_result""" WebDriverWait(self.driver, timeout).until( lambda driver: driver.find_element(*self.result_field).text == expected_result ) print(f"✅ Результат {expected_result} отобразился!") + From 0116a9ea276d62617f5fab1fdb3d996aed4bf94b Mon Sep 17 00:00:00 2001 From: GitForger Date: Wed, 29 Oct 2025 15:53:18 +0700 Subject: [PATCH 09/12] Update lesson_7_shop_test.py --- lesson_7_shop_test.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lesson_7_shop_test.py b/lesson_7_shop_test.py index 1804263..e07f925 100644 --- a/lesson_7_shop_test.py +++ b/lesson_7_shop_test.py @@ -8,25 +8,20 @@ def test_sauce_demo_checkout(): driver = webdriver.Chrome() - # 1. Открываем сайт и авторизуемся login_page = LoginPage(driver) login_page.open() login_page.login("standard_user", "secret_sauce") - # 2. Добавляем товары в корзину products_page = ProductsPage(driver) products_page.add_product_to_cart("Sauce Labs Backpack") products_page.add_product_to_cart("Sauce Labs Bolt T-Shirt") products_page.add_product_to_cart("Sauce Labs Onesie") - # 3. Переходим в корзину и нажимаем Checkout cart_page = products_page.go_to_cart() checkout_page = cart_page.click_checkout() - - # 4. Заполняем форму оформления заказа + checkout_page.fill_checkout_form("Иван", "Петров", "123456") - # 5. Получаем итоговую стоимость и проверяем total = checkout_page.get_total_amount() assert total == "58.29", f"Ожидалась сумма 58.29, но получили {total}" driver.save_screenshot("Shop_result.png") @@ -36,3 +31,4 @@ def test_sauce_demo_checkout(): if __name__ == "__main__": test_sauce_demo_checkout() + From a5a128e7c1f36c1b1341c6c7357387ea3f174273 Mon Sep 17 00:00:00 2001 From: GitForger Date: Thu, 30 Oct 2025 21:05:05 +0700 Subject: [PATCH 10/12] Update lesson_7_shop_ppage.py --- lesson_7_shop_ppage.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/lesson_7_shop_ppage.py b/lesson_7_shop_ppage.py index 7459b69..ce630d9 100644 --- a/lesson_7_shop_ppage.py +++ b/lesson_7_shop_ppage.py @@ -7,16 +7,10 @@ class ProductsPage: def __init__(self, driver): self.driver = driver self.shopping_cart = (By.CLASS_NAME, "shopping_cart_link") - - self.add_to_cart_buttons = { - "Sauce Labs Backpack": (By.ID, "add-to-cart-sauce-labs-backpack"), - "Sauce Labs Bolt T-Shirt": (By.ID, "add-to-cart-sauce-labs-bolt-t-shirt"), - "Sauce Labs Onesie": (By.ID, "add-to-cart-sauce-labs-onesie") - } + self.add_button_locator = "//div[text()='{}']/ancestor::div[@class='inventory_item']//button" def add_product_to_cart(self, product_name): - button_locator = self.add_to_cart_buttons[product_name] - self.driver.find_element(*button_locator).click() + self.driver.find_element(By.XPATH, self.add_button_locator.format(product_name)).click() def go_to_cart(self): self.driver.find_element(*self.shopping_cart).click() From e80197279ca7c50baf63f0cf34e424b031e3b953 Mon Sep 17 00:00:00 2001 From: GitForger Date: Thu, 30 Oct 2025 21:05:40 +0700 Subject: [PATCH 11/12] Update lesson_7_calc_base.py --- lesson_7_calc_base.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/lesson_7_calc_base.py b/lesson_7_calc_base.py index ff47f8e..4c11bd1 100644 --- a/lesson_7_calc_base.py +++ b/lesson_7_calc_base.py @@ -1,19 +1,12 @@ from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC class CalculatorPage: def __init__(self, driver): self.driver = driver self.delay_field = (By.CSS_SELECTOR, "#delay") self.result_field = (By.CSS_SELECTOR, ".screen") - - self.buttons = { - "7": (By.XPATH, "//span[contains(@class, 'btn') and text()='7']"), - "8": (By.XPATH, "//span[contains(@class, 'btn') and text()='8']"), - "+": (By.XPATH, "//span[contains(@class, 'btn') and text()='+']"), - "=": (By.XPATH, "//span[contains(@class, 'btn') and text()='=']"), - } + self.button_locator = "//span[contains(@class, 'btn') and text()='{}']" def open(self): self.driver.get("https://bonigarcia.dev/selenium-webdriver-java/slow-calculator.html") @@ -24,12 +17,9 @@ def set_delay(self, delay_seconds): delay_input.send_keys(str(delay_seconds)) def click_button(self, button): - button_locator = self.buttons[button] - self.driver.find_element(*button_locator).click() + self.driver.find_element(By.XPATH, self.button_locator.format(button)).click() def wait_for_result(self, expected_result, timeout=50): WebDriverWait(self.driver, timeout).until( lambda driver: driver.find_element(*self.result_field).text == expected_result ) - print(f"✅ Результат {expected_result} отобразился!") - From 614f8b190027e0038e6ab4fcdc3f1067a38a3ef6 Mon Sep 17 00:00:00 2001 From: GitForger Date: Thu, 30 Oct 2025 21:06:19 +0700 Subject: [PATCH 12/12] Update lesson_7_calc_test.py --- lesson_7_calc_test.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/lesson_7_calc_test.py b/lesson_7_calc_test.py index ce68933..235e6cf 100644 --- a/lesson_7_calc_test.py +++ b/lesson_7_calc_test.py @@ -1,8 +1,6 @@ -import pytest from selenium import webdriver from lesson_7_calc_base import CalculatorPage - def test_calculator_with_delay(): driver = webdriver.Chrome() calculator = CalculatorPage(driver) @@ -11,16 +9,11 @@ def test_calculator_with_delay(): calculator.set_delay(45) calculator.click_button("7") - driver.save_screenshot("b7.png") calculator.click_button("+") - driver.save_screenshot("b+.png") calculator.click_button("8") calculator.click_button("=") - driver.save_screenshot("b=.png") - calculator.wait_for_result("15") - driver.save_screenshot("result.png") - print("✅ Тест пройден!") + calculator.wait_for_result("15", timeout=50) driver.quit()