def test_displays_menu_items(self, bokeh_model_page) -> None: button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"]) page = bokeh_model_page(button) button = page.driver.find_element_by_css_selector('.foo button') assert button.text == "Dropdown button" button.click() menu = page.driver.find_element_by_css_selector('.foo .bk-menu') assert menu.is_displayed()
def test_displays_menu_items(self, bokeh_model_page): button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"]) page = bokeh_model_page(button) button = page.driver.find_element_by_css_selector('.foo button') assert button.text == "Dropdown button" button.click() menu = page.driver.find_element_by_css_selector('.foo .bk-menu') assert menu.is_displayed()
def test_displays_menu_items(self, bokeh_model_page): button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"]) page = bokeh_model_page(button) button_div = page.driver.find_element_by_class_name('foo') button = button_div.find_element_by_tag_name("button") assert button.text == "Dropdown button" button.click() links = page.driver.find_elements_by_css_selector('ul li a') assert len(links) == 3 for i, link in enumerate(links): assert link.text == items[i][0] assert link.get_attribute('data-value') == items[i][1]
def test_js_on_change_executes(self, bokeh_model_page) -> None: button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"]) button.js_on_event('menu_item_click', CustomJS(code=RECORD("value", "this.item"))) page = bokeh_model_page(button) button = page.driver.find_element_by_css_selector('.foo button') button.click() item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(1)") item.click() results = page.results assert results == {'value': "item_1_value"} button = page.driver.find_element_by_css_selector('.foo button') button.click() item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(3)") item.click() results = page.results assert results == {'value': "item_3_value"} button = page.driver.find_element_by_css_selector('.foo button') button.click() item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(2)") item.click() results = page.results assert results == {'value': "item_2_value"} assert page.has_no_console_errors()
def test_js_on_change_executes(self, bokeh_model_page): button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"]) button.js_on_change('value', CustomJS(code=RECORD("value", "cb_obj.value"))) page = bokeh_model_page(button) button = page.driver.find_element_by_class_name('foo') button.click() item = page.driver.find_element_by_link_text("Item 1") item.click() results = page.results assert results == {'value': "item_1_value"} button = page.driver.find_element_by_class_name('foo') button.click() item = page.driver.find_element_by_link_text("Item 3") item.click() results = page.results assert results == {'value': "item_3_value"} button = page.driver.find_element_by_class_name('foo') button.click() item = page.driver.find_element_by_link_text("Item 2") item.click() results = page.results assert results == {'value': "item_2_value"} assert page.has_no_console_errors()
def test_js_on_change_executes(self, bokeh_model_page): button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"]) button.js_on_event('menu_item_click', CustomJS(code=RECORD("value", "this.item"))) page = bokeh_model_page(button) button = page.driver.find_element_by_css_selector('.foo button') button.click() item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(1)") item.click() results = page.results assert results == {'value': "item_1_value"} button = page.driver.find_element_by_css_selector('.foo button') button.click() item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(3)") item.click() results = page.results assert results == {'value': "item_3_value"} button = page.driver.find_element_by_css_selector('.foo button') button.click() item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(2)") item.click() results = page.results assert results == {'value': "item_2_value"} assert page.has_no_console_errors()