|
@@ -1,5 +1,7 @@
|
|
|
import asyncio
|
|
|
|
|
|
+from selenium.webdriver.common.by import By
|
|
|
+
|
|
|
from nicegui import ui
|
|
|
|
|
|
from .screen import Screen
|
|
@@ -20,3 +22,18 @@ def test_event_with_update_before_await(screen: Screen):
|
|
|
screen.wait_for('1')
|
|
|
screen.should_not_contain('2')
|
|
|
screen.wait_for('2')
|
|
|
+
|
|
|
+
|
|
|
+def test_event_modifiers(screen: Screen):
|
|
|
+ events = []
|
|
|
+ ui.input('A').on('keydown', lambda _: events.append('A'))
|
|
|
+ ui.input('B').on('keydown.x', lambda _: events.append('B'))
|
|
|
+ ui.input('C').on('keydown.once', lambda _: events.append('C'))
|
|
|
+ ui.input('D').on('keydown.shift.x', lambda _: events.append('D'))
|
|
|
+
|
|
|
+ screen.open('/')
|
|
|
+ screen.selenium.find_element(By.XPATH, '//*[@aria-label="A"]').send_keys('x')
|
|
|
+ screen.selenium.find_element(By.XPATH, '//*[@aria-label="B"]').send_keys('xy')
|
|
|
+ screen.selenium.find_element(By.XPATH, '//*[@aria-label="C"]').send_keys('xx')
|
|
|
+ screen.selenium.find_element(By.XPATH, '//*[@aria-label="D"]').send_keys('Xx')
|
|
|
+ assert events == ['A', 'B', 'C', 'D']
|