def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.h1 = H1() self.h1.textContent = 'Hello, WDOM' self.input = Input() self.input.addEventListener('input', self.update) self.appendChild(self.input) self.appendChild(self.h1)
class MyElement(Div): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.h1 = H1('Hello, WDOM', parent=self) self.input = Input(parent=self) self.input.addEventListener('input', self.update) def update(self, event): self.h1.textContent = event.target.value
class MyElement(Div): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.h1 = H1() self.h1.textContent = 'Hello, WDOM' self.input = Input() self.input.addEventListener('input', self.update) self.appendChild(self.input) self.appendChild(self.h1) def update(self, event): self.h1.textContent = event.target.value
def get_elements(self): self.root = Form() self.input = Input(parent=self.root, type='text') self.textarea = Textarea(parent=self.root) self.checkbox = CheckBox(parent=self.root, id='check1') self.check_l = Label('Check 1', parent=self.root, **{'for': 'check1'}) self.radio1 = Input(parent=self.root, type='radio', name='radio_test', id='r1') # noqa: E501 self.radio2 = Input(parent=self.root, type='radio', name='radio_test', id='r2') # noqa: E501 self.radio3 = Input(parent=self.root, type='radio', name='radio_test2', id='r3') # noqa: E501 self.radio1_l = Label(self.radio1, 'Radio 1', parent=self.root) self.radio2_l = Label(self.radio2, 'Radio 2', parent=self.root) self.radio3_l = Label(self.radio3, 'Radio 3', parent=self.root) return self.root
def sample_page(**kwargs): doc = get_document() win = doc.defaultView app = Div() inp = Input(id='input', parent=app) win1 = H1(id='win1', parent=app) doc1 = H1(id='doc1', parent=app) input_view = H1(id='input_view', parent=app) def add_letter_doc(e): doc1.textContent = doc1.textContent + e.key def add_letter_win(e): win1.textContent = win1.textContent + e.key def input_handler(e): input_view.textContent = e.data doc.addEventListener('keypress', add_letter_doc) win.addEventListener('keypress', add_letter_win) inp.addEventListener('input', input_handler) return app
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.h1 = H1('Hello, WDOM', parent=self) self.input = Input(parent=self) self.input.addEventListener('input', self.update)
class TestInput(PyppeteerTestCase): def get_elements(self): self.root = Form() self.input = Input(parent=self.root, type='text') self.textarea = Textarea(parent=self.root) self.checkbox = CheckBox(parent=self.root, id='check1') self.check_l = Label('Check 1', parent=self.root, **{'for': 'check1'}) self.radio1 = Input(parent=self.root, type='radio', name='radio_test', id='r1') # noqa: E501 self.radio2 = Input(parent=self.root, type='radio', name='radio_test', id='r2') # noqa: E501 self.radio3 = Input(parent=self.root, type='radio', name='radio_test2', id='r3') # noqa: E501 self.radio1_l = Label(self.radio1, 'Radio 1', parent=self.root) self.radio2_l = Label(self.radio2, 'Radio 2', parent=self.root) self.radio3_l = Label(self.radio3, 'Radio 3', parent=self.root) return self.root @sync async def test_textinput(self): inputs = [] def input_handler(e): inputs.append(e.data) self.input.addEventListener('input', input_handler) await self.page.type('[wdom_id="{}"]'.format(self.input.wdom_id), 'a') await self.wait() self.assertEqual(self.input.value, 'a') self.assertEqual(len(inputs), 1) self.assertEqual(inputs[0], 'a') await self.page.reload() self.element = await self.get_element_handle(self.input) self.assertEqual(await self.get_attribute('value'), 'a') await self.page.type('[wdom_id="{}"]'.format(self.input.wdom_id), 'd') await self.wait() # focus on top of the text input self.assertEqual(self.input.value, 'da') self.assertEqual(len(inputs), 2) self.assertEqual(inputs[0], 'a') self.assertEqual(inputs[1], 'd') @sync async def test_textarea(self): await self.page.type('[wdom_id="{}"]'.format(self.textarea.wdom_id), 'abc') await self.wait() self.element = await self.get_element_handle(self.textarea) self.assertEqual(self.textarea.textContent, 'abc') await self.page.reload() await self.wait() self.element = await self.get_element_handle(self.textarea) await self.wait() self.assertEqual(await self.get_text(), 'abc') await self.page.type('[wdom_id="{}"]'.format(self.textarea.wdom_id), 'def') await self.wait() self.assertEqual(self.textarea.textContent, 'defabc') @sync async def test_checkbox(self): self.element = await self.get_element_handle(self.checkbox) await self.element.click() await self.wait() self.assertIsTrue(self.checkbox.checked) await self.page.reload() await self.wait() self.element = await self.get_element_handle(self.checkbox) self.assertIsTrue( await self.page.evaluate('(e) => e.hasAttribute("checked")', self.element)) await self.element.click() await self.wait() # Error # self.assertIsFalse( # await self.element.evaluate('(elm) => elm.hasAttribute("checked")') # noqa # ) self.assertIsFalse(self.checkbox.checked) @sync async def test_checkbox_label(self): self.element = await self.get_element_handle(self.checkbox) await self.element.click() await self.wait() self.assertTrue(self.checkbox.checked) await self.element.click() await self.wait() self.assertFalse(self.checkbox.checked) @sync async def test_radios(self): self.assertFalse(self.radio1.checked) self.assertFalse(self.radio2.checked) self.assertFalse(self.radio3.checked) self.element = await self.get_element_handle(self.radio1) await self.element.click() await self.wait() self.assertTrue(self.radio1.checked) self.assertFalse(self.radio2.checked) self.assertFalse(self.radio3.checked) self.element = await self.get_element_handle(self.radio2) await self.element.click() await self.wait() self.assertFalse(self.radio1.checked) self.assertTrue(self.radio2.checked) self.assertFalse(self.radio3.checked) self.element = await self.get_element_handle(self.radio3) await self.element.click() await self.wait() self.assertFalse(self.radio1.checked) self.assertTrue(self.radio2.checked) self.assertTrue(self.radio3.checked) @sync async def test_radios_label(self): self.element = await self.get_element_handle(self.radio1_l) await self.element.click() await self.wait() self.assertTrue(self.radio1.checked) self.assertFalse(self.radio2.checked) self.element = await self.get_element_handle(self.radio2_l) await self.element.click() await self.wait() self.assertFalse(self.radio1.checked) self.assertTrue(self.radio2.checked) def test_select(self): pass def test_select_multi(self): pass
from wdom.tag import Input input = Input(type='checkbox') print(input.html_noid) # <input type="checkbox"> # this is equivalent to: input = Input() input.setAttribute('type', 'checkbox') # also same as: input.type = 'checkbox'