forked from zauberzeug/nicegui
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_joystick.py
41 lines (31 loc) · 1.27 KB
/
test_joystick.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from nicegui import ui
from .screen import Screen
def test_joystick(screen: Screen):
j = ui.joystick(on_move=lambda e: coordinates.set_text(f'move {e.x:.3f}, {e.y:.3f}'),
on_end=lambda _: coordinates.set_text('end 0, 0'))
coordinates = ui.label('start 0, 0')
screen.open('/')
joystick = screen.selenium.find_element(By.ID, j.id)
assert joystick
screen.should_contain('start 0, 0')
ActionChains(screen.selenium) \
.move_to_element_with_offset(joystick, 25, 25) \
.click_and_hold() \
.pause(1) \
.move_by_offset(20, 20) \
.pause(1) \
.perform()
screen.should_contain('move 0.400, -0.400')
ActionChains(screen.selenium) \
.move_to_element_with_offset(joystick, 25, 25) \
.click() \
.perform()
screen.should_contain('end 0, 0')
def test_styling_joystick(screen: Screen):
j = ui.joystick().style('background-color: gray;').classes('shadow-lg')
screen.open('/')
joystick = screen.selenium.find_element(By.ID, j.id)
assert 'background-color: gray;' in joystick.get_attribute('style')
assert 'shadow-lg' in joystick.get_attribute('class')