from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait URL = "https://www.selenium.dev/selenium/web/web-form.html" FORM = (By.XPATH, "//form[.//input[@name='my-text']]") FIELD_XPATH = ".//input[@name='my-text']" BUTTON_XPATH = ".//button[normalize-space()='Submit']" driver = webdriver.Chrome() try: driver.get(URL) form = WebDriverWait(driver, 10).until( EC.presence_of_element_located(FORM) ) field = form.find_element(By.XPATH, FIELD_XPATH) button = form.find_element(By.XPATH, BUTTON_XPATH) assert ( form.tag_name, field.get_dom_attribute("name"), button.text, ) == ("form", "my-text", "Submit") print(f"page_title: {driver.title}") print(f"form_tag: {form.tag_name}") print(f"field_name: {field.get_dom_attribute('name')}") print(f"button_text: {button.text}") finally: driver.quit()