Вопрос пользователя:
Ответ нейросети:
Для начала создадим класс PageObject для страницы пополнения без комиссии:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class OnlineRechargePage:
def __init__(self, driver):
self.driver = driver
def open_page(self):
self.driver.get("https://www.mts.by/")
def select_payment_option(self, option):
self.driver.find_element(By.XPATH, f"//div[text()='{option}']").click()
def check_empty_fields_labels(self, option):
labels = self.driver.find_elements(By.XPATH, f"//div[text()='{option}']/following-sibling::div//label")
for label in labels:
assert label.text == "Обязательное поле"
def fill_phone_number(self, phone_number):
phone_input = self.driver.find_element(By.XPATH, "//input[@name='phone']")
phone_input.clear()
phone_input.send_keys(phone_number)
def click_continue_button(self):
self.driver.find_element(By.XPATH, "//button[text()='Продолжить']").click()
def check_amount_displayed(self, amount):
amount_text = self.driver.find_element(By.XPATH, "//div[contains(text(), 'Сумма платежа')]").text
assert amount_text == f"Сумма платежа: {amount} BYN"
def check_phone_number_displayed(self, phone_number):
phone_text = self.driver.find_element(By.XPATH, "//div[contains(text(), 'Номер телефона')]").text
assert phone_text == f"Номер телефона: {phone_number}"
def check_empty_fields_labels_card(self):
labels = self.driver.find_elements(By.XPATH, "//div[contains(text(), 'Реквизиты карты')]/following-sibling::div//label")
for label in labels:
assert label.text == "Обязательное поле"
def check_payment_system_icons(self):
icons = self.driver.find_elements(By.XPATH, "//div[contains(text(), 'Выберите способ оплаты')]/following-sibling::div//img")
assert len(icons) == 2 # Предполагаем, что должно быть две иконки платежных систем
Теперь напишем тест с использованием этого PageObject:
import unittest
from selenium import webdriver
from online_recharge_page import OnlineRechargePage
class OnlineRechargeTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.page = OnlineRechargePage(self.driver)
def test_online_recharge(self):
self.page.open_page()
payment_options = ["Услуги связи", "Домашний интернет", "Рассрочка", "Задолженность"]
for option in payment_options:
self.page.select_payment_option(option)
self.page.check_empty_fields_labels(option)
self.page.select_payment_option("Услуги связи")
self.page.fill_phone_number("123456789")
self.page.click_continue_button()
self.page.check_amount_displayed("10")
self.page.check_phone_number_displayed("123456789")
self.page.check_empty_fields_labels_card()
self.page.check_payment_system_icons()
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
Теперь тест будет последовательно проверять надписи в незаполненных полях для каждого варианта оплаты, заполнять поля для услуг связи, нажимать кнопку "Продолжить" и проверять корректность отображения необходимой информации.
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.