test_slide_item.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from selenium.webdriver.common.action_chains import ActionChains
  2. from nicegui import ui
  3. from nicegui.testing import Screen
  4. def test_slide_item(screen: Screen):
  5. label = ui.label('None')
  6. with ui.slide_item('slide item', on_slide=lambda e: label.set_text(f'Event: {e.side}')) as slide_item:
  7. slide_item.left()
  8. screen.open('/')
  9. screen.should_contain('slide item')
  10. screen.should_contain('None')
  11. ActionChains(screen.selenium) \
  12. .move_to_element_with_offset(screen.find_element(slide_item), -20, 0) \
  13. .click_and_hold() \
  14. .pause(0.5) \
  15. .move_by_offset(60, 0) \
  16. .pause(0.5) \
  17. .release() \
  18. .perform()
  19. screen.should_contain('Event: left')
  20. def test_slide_side(screen: Screen):
  21. label = ui.label('None')
  22. with ui.slide_item('slide item') as slide_item:
  23. slide_item.left(on_slide=lambda e: label.set_text(f'Event: {e.side}'))
  24. slide_item.right(on_slide=lambda e: label.set_text(f'Event: {e.side}'))
  25. screen.open('/')
  26. screen.should_contain('None')
  27. ActionChains(screen.selenium) \
  28. .move_to_element_with_offset(screen.find_element(slide_item), -20, 0) \
  29. .click_and_hold() \
  30. .pause(0.5) \
  31. .move_by_offset(60, 0) \
  32. .pause(0.5) \
  33. .release() \
  34. .perform()
  35. screen.should_contain('Event: left')
  36. slide_item.reset()
  37. screen.should_contain('slide item')
  38. ActionChains(screen.selenium) \
  39. .move_to_element_with_offset(screen.find_element(slide_item), 20, 0) \
  40. .click_and_hold() \
  41. .pause(0.5) \
  42. .move_by_offset(-60, 0) \
  43. .pause(0.5) \
  44. .release() \
  45. .perform()
  46. screen.should_contain('Event: right')