<input id="month" type="month"</div>
<script>
if (window.testRunner) {
  testRunner.dumpAsText();
}
function openPicker(input) {
  sendKey(input, "Down", false, true);
  finishTest();
}
function sendKey(input, keyName, ctrlKey, altKey) {
  var event = document.createEvent('KeyboardEvent');
  event.initKeyboardEvent('keydown', true, true, document.defaultView, keyName, 0, ctrlKey, altKey);
  input.dispatchEvent(event);
}
openPicker(document.getElementById('month'), finishTest);
function finishTest() {
  document.body.innerText = 'PASS (not crashed)';
}
</script>
