Как манипулировать выпадающим меню из элементов ul и li в Chromeless

Я столкнулся с выпадающим меню, состоящим из элементов ul и li:

<ul class="o_dropdown_theme_values">
    <li class="" tabindex="-1">
        <label class="myclass" tabindex="0">Category 1</label>
    </li>
    <li class="" tabindex="-1">
        <label class="myclass" tabindex="0">Category 2</label>
    </li>
    ...
</ul>

Я знаю два способа изменить выпадающее меню с помощью Chromeless:

.evaluate((dropDownValue) => {
    select = document.querySelector('select#category1')
    select.value = dropDownValue
}, dropDownValue)

а также

.click('#id') 
.type("first letters of option", '#id') 
.click('#id option[value="'+dropDownValue+'"]') 

но из-за структуры меню с ul и li я не могу их использовать.

Я также пытался щелкнуть меню, а затем нажать клавишу табуляции столько раз, сколько необходимо, чтобы выбрать правильный вариант, как если бы я перемещался по меню с помощью клавиатуры. Но клавиши Tab, которые я отправляю, не учитываются. Я смог отправить ОДНУ (и только одну) клавишу DOWN (а не TAB) в меню, но не более того.

Как я могу манипулировать этим видом меню? Любое обходное решение, основанное на javascript, будет оценено по достоинству.


person Sulli    schedule 21.05.2018    source источник
comment
Я не знаком с Chromeless, но стоит ли пытаться захватить текст, а не значение метки?   -  person George K    schedule 01.06.2018


Ответы (1)


Я нашел способ в конце концов.

Используйте команду .focus(#CSSselector), чтобы выделить правильный вариант, а затем подтвердите с помощью .press(13) (клавиша Enter).

Итак, это третий способ манипулировать выпадающими меню в Chromeless.

person Sulli    schedule 02.06.2018