102 lines
3.4 KiB
Python
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" |