test_input.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from selenium.webdriver.common.by import By
  2. from nicegui import ui
  3. from .screen import Screen
  4. def test_input(screen: Screen):
  5. ui.input('Your name', value='John Doe')
  6. screen.open('/')
  7. screen.should_contain('Your name')
  8. element = screen.selenium.find_element(By.XPATH, '//*[@aria-label="Your name"]')
  9. assert element.get_attribute('type') == 'text'
  10. assert element.get_attribute('value') == 'John Doe'
  11. element.send_keys(' Jr.')
  12. assert element.get_attribute('value') == 'John Doe Jr.'
  13. def test_password(screen: Screen):
  14. ui.input('Your password', value='123456', password=True)
  15. screen.open('/')
  16. screen.should_contain('Your password')
  17. element = screen.selenium.find_element(By.XPATH, '//*[@aria-label="Your password"]')
  18. assert element.get_attribute('type') == 'password'
  19. assert element.get_attribute('value') == '123456'
  20. element.send_keys('789')
  21. assert element.get_attribute('value') == '123456789'
  22. def test_toggle_button(screen: Screen):
  23. ui.input('Your password', value='123456', password=True, password_toggle_button=True)
  24. screen.open('/')
  25. screen.should_contain('Your password')
  26. screen.should_contain('visibility_off')
  27. element = screen.selenium.find_element(By.XPATH, '//*[@aria-label="Your password"]')
  28. assert element.get_attribute('type') == 'password'
  29. assert element.get_attribute('value') == '123456'
  30. screen.click('visibility_off')
  31. assert element.get_attribute('type') == 'text'
  32. screen.click('visibility')
  33. assert element.get_attribute('type') == 'password'