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"