code: def test_arrow_cannot_escape_menu(
      self, bokeh_model_page: BokehModelPage
  ) -> None:
      text_input = AutocompleteInput(
          title="title",
          completions=[
              "100001",
              "12344556",
              "12344557",
              "3194567289",
              "209374209374",
          ],
      )
  
      page = bokeh_model_page(text_input)
  
      el = find_element_for(page.driver, text_input, ".bk-menu")
      assert "display: none;" in el.get_attribute("style")
  
      el = find_element_for(page.driver, text_input, "input")
      enter_text_in_element(
          page.driver, el, "123", click=2, enter=False
      )
  
      el = find_element_for(page.driver, text_input, ".bk-menu")
      assert "display: none;" not in el.get_attribute("style")
  
      items = el.find_elements(By.TAG_NAME, "div")
      assert len(items) == 2
      assert items[0].text == "12344556"
      assert items[1].text == "12344557"
      assert "bk-active" in items[0].get_attribute("class")
      assert "bk-active" not in items[1].get_attribute("class")
  
      # arrow down moves to second item
      enter_text_in_element(
          page.driver, el, Keys.DOWN, click=0, enter=False
      )
      items = el.find_elements(By.TAG_NAME, "div")
      assert len(items) == 2
      assert items[0].text == "12344556"
      assert items[1].text == "12344557"
      assert "bk-active" not in items[0].get_attribute("class")
      assert "bk-active" in items[1].get_attribute("class")
  
      # arrow down again has no effect
      enter_text_in_element(
          page.driver, el, Keys.DOWN, click=0, enter=False
      )
      items = el.find_elements(By.TAG_NAME, "div")
      assert len(items) == 2
      assert items[0].text == "12344556"
      assert items[1].text == "12344557"
      assert "bk-active" not in items[0].get_attribute("class")
      assert "bk-active" in items[1].get_attribute("class")
  
      # arrow up moves to first item
      enter_text_in_element(
          page.driver, el, Keys.UP, click=0, enter=False
      )
      assert len(items) == 2
      assert items[0].text == "12344556"
      assert items[1].text == "12344557"
      assert "bk-active" in items[0].get_attribute("class")
      assert "bk-active" not in items[1].get_attribute("class")
  
      # arrow up again has no effect
      enter_text_in_element(
          page.driver, el, Keys.UP, click=0, enter=False
      )
      assert len(items) == 2
      assert items[0].text == "12344556"
      assert items[1].text == "12344557"
      assert "bk-active" in items[0].get_attribute("class")
      assert "bk-active" not in items[1].get_attribute("class")
  
      assert page.has_no_console_errors()
  
imports: from __future__ import annotations
  import pytest
  from selenium.webdriver.common.by import By
  from selenium.webdriver.common.keys import Keys
  from bokeh.application.handlers.function import ModifyDoc
  from bokeh.layouts import column
  from bokeh.models import AutocompleteInput, ColumnDataSource, CustomJS, Plot, Range1d, Scatter
  from tests.support.plugins.project import BokehModelPage, BokehServerPage
  from tests.support.util.selenium import RECORD, enter_text_in_element, find_element_for, hover_element
label_desc: Use image node_id 10 for calling the Test_AutocompleteInput obj's underlying member method code with example usage: obj.test_arrow_cannot_escape_menu(bokeh_model_page) without return types