12345678910111213141516171819202122232425262728293031 |
- from datetime import datetime
- from nicegui import ui
- from .screen import Screen
- def test_executing_javascript(screen: Screen):
- async def set_title():
- await ui.run_javascript('document.title = "A New Title"')
- ui.button('change title', on_click=set_title)
- screen.open('/')
- screen.selenium.title == 'NiceGUI'
- screen.click('change title')
- screen.selenium.title == 'A New Title'
- screen.selenium.title != 'NiceGUI'
- def test_retrieving_content_from_javascript(screen: Screen):
- async def write_time():
- response = await ui.await_javascript('Date.now()')
- ui.label(f'Browser time: {response}')
- ui.button('write time', on_click=write_time)
- screen.open('/')
- screen.click('write time')
- label = screen.find('Browser time').text
- jstime = datetime.fromtimestamp(int(label.split(': ')[1])/1000)
- assert abs((datetime.now() - jstime).total_seconds()) < 1, f'{jstime} should be close to now'
|