selenium_automation_project/tests/test_form_elements.py

102 lines
3.4 KiB
Python

import pytest
from page_objects.form_elements_page import FormElementsPage
@pytest.mark.regression
class TestFormElements:
"""
Test suite for the Form Elements page.
"""
def test_text_input(self, driver):
"""
Tests text entry and retrieval from the text input field.
"""
form_page = FormElementsPage(driver)
form_page.open()
test_text = "Hello, Selenium!"
form_page.enter_text_in_input(test_text)
retrieved_text = form_page.get_text_from_input()
assert retrieved_text == test_text, f"Expected '{test_text}', but got '{retrieved_text}'"
@pytest.mark.smoke
def test_checkbox_selection(self, driver):
"""
Tests the selection and deselection of a checkbox.
"""
form_page = FormElementsPage(driver)
form_page.open()
assert not form_page.is_checkbox_selected(), "Checkbox should be deselected initially"
form_page.select_checkbox()
assert form_page.is_checkbox_selected(), "Checkbox should be selected after clicking"
form_page.select_checkbox()
assert not form_page.is_checkbox_selected(), "Checkbox should be deselected after clicking again"
def test_radio_button_selection(self, driver):
"""
Tests that only one radio button can be selected at a time.
"""
form_page = FormElementsPage(driver)
form_page.open()
form_page.choose_radio_option(2)
assert form_page.is_radio_option_selected(2), "Radio option 2 should be selected"
assert not form_page.is_radio_option_selected(1), "Radio option 1 should not be selected"
form_page.choose_radio_option(3)
assert form_page.is_radio_option_selected(3), "Radio option 3 should be selected"
assert not form_page.is_radio_option_selected(2), "Radio option 2 should not be selected"
def test_dropdown_selection(self, driver):
"""
Tests selecting an option from the custom dropdown.
"""
form_page = FormElementsPage(driver)
form_page.open()
fruit_to_select = "Banana"
form_page.select_fruit_by_visible_text(fruit_to_select)
selected_fruit = form_page.get_selected_fruit()
assert selected_fruit == fruit_to_select, \
f"Expected '{fruit_to_select}' to be selected, but got '{selected_fruit}'"
def test_disabled_button_state(self, driver):
"""
Verifies that the 'Disabled' button is indeed disabled.
"""
form_page = FormElementsPage(driver)
form_page.open()
assert not form_page.is_disabled_button_enabled(), "The disabled button should not be enabled"
@pytest.mark.smoke
def test_form_submission(self, driver):
"""
A simple test to fill a field and click the submit button.
"""
form_page = FormElementsPage(driver)
form_page.open()
form_page.enter_text_in_input("Test submission")
form_page.click_submit_button()
alert = form_page.switch_to_alert()
alert_text = alert.text
alert.accept()
assert alert_text == "Form Submitted!", "Alert text after submission is incorrect"
def test_filure_case(self,driver):
"""
"""
form_page = FormElementsPage(driver)
form_page.open()
print("case1")
assert "" == "a", "error"