from selenium.webdriver.common.by import By from nicegui import ui from .screen import Screen def test_input(screen: Screen): ui.input('Your name', value='John Doe') screen.open('/') screen.should_contain('Your name') element = screen.selenium.find_element(By.XPATH, '//*[@aria-label="Your name"]') assert element.get_attribute('type') == 'text' assert element.get_attribute('value') == 'John Doe' element.send_keys(' Jr.') assert element.get_attribute('value') == 'John Doe Jr.' def test_password(screen: Screen): ui.input('Your password', value='123456', password=True) screen.open('/') screen.should_contain('Your password') element = screen.selenium.find_element(By.XPATH, '//*[@aria-label="Your password"]') assert element.get_attribute('type') == 'password' assert element.get_attribute('value') == '123456' element.send_keys('789') assert element.get_attribute('value') == '123456789' def test_toggle_button(screen: Screen): ui.input('Your password', value='123456', password=True, password_toggle_button=True) screen.open('/') screen.should_contain('Your password') screen.should_contain('visibility_off') element = screen.selenium.find_element(By.XPATH, '//*[@aria-label="Your password"]') assert element.get_attribute('type') == 'password' assert element.get_attribute('value') == '123456' screen.click('visibility_off') assert element.get_attribute('type') == 'text' screen.click('visibility') assert element.get_attribute('type') == 'password'