Selenium IDE с выбранными элементами select

Я пытаюсь протестировать регистрационную форму в Selenium IDE, но у меня возникают проблемы с выбором элементов из библиотеки Chosen: http://harvesthq.github.io/chosen/

Интересно, можете ли вы помочь мне с командами для выбора опции (кстати, это может быть любая опция). Я не мог пройти мимо открытия раскрывающегося списка с помощью простого mouseDown. Вот пример веб-страницы с одиночным и множественным выбором (загрузите исходные файлы из репозитория выше.

<html>
<head>
    <link rel="stylesheet" href="chosen/public/chosen.min.css">
    <link rel="stylesheet" href="chosen/public/chosen.jquery.min.css">
    <script src="jquery-1.10.2.min.js"></script>
    <script src="chosen/public/chosen.jquery.min.js"></script>
</head>
<body>
    <select multiple class="chzn-select" style="width: 150px;">
        <option value="Test 1">Test 1</option>
        <option value="Test 2">Test 2</option>
        <option value="Test 3">Test 3</option>
    </select>
    <br><br>
    <select class="chzn-select" style="width: 150px;">
        <option value="Test A">Test A</option>
        <option value="Test B">Test B</option>
        <option value="Test C">Test C</option>
    </select>   

    <script type="text/javascript">
        $(".chzn-select").chosen();
    </script>
</body>
</html>

person MikkoP    schedule 19.07.2013    source источник


Ответы (4)


Хорошо, мне удалось взломать его самому, и это было так просто:

Команда: clickAt

Цель: css=#id_country_chzn_o_1

(выбирает первый элемент в списке стран, используйте Firebug, чтобы узнать, как называются ваши идентификаторы)

person MikkoP    schedule 20.07.2013
comment
Замечательно! Интересно, почему ClickAt работает, а Click нет. Даже несмотря на то, что ClickAt вызывается без координат. - person Alen Siljak; 04.10.2013
comment
Какой был выбранный вами идентификатор выбора и каковы были значения? - person Pierce McGeough; 21.08.2014
comment
Просто чтобы добавить дополнительный хак, который мне нужен. Сначала мне нужно было добавить: clickAt|id={my_select}_chosen, затем я мог сделать clickAt для определенной опции с помощью: clickAt|//li[@data-option-array- индекс='1'] - person StartupGuy; 09.10.2014

Следующие шаги решают эту проблему: Шаг 01.

Command: clickAt
Target: id=iNationality_chosen

Шаг 02.

Command: clickAt
Target: css=div[id='iNationality_chosen'] div ul li:nth-child(2)

Примечание 01: iNationality_chosen здесь вы можете заменить идентификатор на идентификатор вашего элемента.

Примечание 02: li:nth-child(2) здесь вы можете указать любое число, которое хотите выбрать. 2 будет выбирать второго ребенка (список опций).

person mhrilwan    schedule 17.08.2016

У меня такая же проблема раньше. Решение довольно простое и обычное. Это лучшая практика для команды Select в Selenium IDE. Вот:

  1. Команда: выберите выбрать в качестве команды.
  2. Цель: выберите идентификатор элемента, на который вы хотите указать.
  3. Значение: задайте значение, используя этот формат index=1 // это самое важное, а затем вы можете изменить число на предпочитаемое вами число.

Например:

  1. Команда: выбрать
  2. Цель: id=провинция
  3. Значение: index=2

Удачи!

person azwar_akbar    schedule 21.12.2014

У меня была аналогичная проблема с использованием selenium api и robotframework. Элемент не был кликабельным, потому что при выборе добавляется display:none. Я решил это, выполнив javascript jquery, который удаляет атрибут стиля.

В стиле robotframework:

Выполнить Javascript $("#id").removeAttr("style");

Где id - это идентификатор выбранного.

person mathijsbrand    schedule 20.02.2015