test_color_input.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from selenium.webdriver.common.by import By
  2. from selenium.webdriver.common.keys import Keys
  3. from nicegui import ui
  4. from .screen import Screen
  5. def test_entering_color(screen: Screen):
  6. ui.color_input(label='Color', on_change=lambda e: ui.label(f'content: {e.value}'), preview=True)
  7. screen.open('/')
  8. screen.type(Keys.TAB)
  9. screen.type('#001100')
  10. screen.should_contain('content: #001100')
  11. button = screen.selenium.find_element(By.CLASS_NAME, 'q-btn')
  12. assert button.value_of_css_property('background-color') == 'rgba(0, 17, 0, 1)'
  13. def test_picking_color(screen: Screen):
  14. ui.color_input(label='Color', on_change=lambda e: output.set_text(e.value))
  15. output = ui.label()
  16. screen.open('/')
  17. screen.click('colorize')
  18. screen.click_at_position(screen.find('HEX'), x=0, y=60)
  19. content = screen.selenium.find_element(By.CLASS_NAME, 'q-color-picker__header-content')
  20. assert content.value_of_css_property('background-color') in {'rgba(245, 186, 186, 1)', 'rgba(245, 184, 184, 1)'}
  21. assert output.text in {'#f5baba', '#f5b8b8'}
  22. screen.type(Keys.ESCAPE)
  23. screen.wait(0.5)
  24. screen.should_not_contain('HEX')
  25. screen.click('colorize')
  26. content = screen.selenium.find_element(By.CLASS_NAME, 'q-color-picker__header-content')
  27. assert content.value_of_css_property('background-color') in {'rgba(245, 186, 186, 1)', 'rgba(245, 184, 184, 1)'}
  28. assert output.text in {'#f5baba', '#f5b8b8'}