Как выбрать опцию из выпадающего списка с помощью Hound?

У меня есть следующий выпадающий список:

<select id="cities" name="cities">
  <option value="paris">Paris</option>
  <option value="london">London</option>
  <option value="rome">Rome</option>
</select>

Я пишу интеграционные тесты в Elixir с Hound, и я хотел бы выбрать элемент из списка выше, прежде чем отправлять мою форму. Могу ли я сделать это с собакой?

Я не смог найти ничего о выпадающих списках в документации Hound.

1 ответ

Решение

В настоящее время нет функции Hound, предназначенной для выбора элемента из выпадающего списка.

Тем не менее, вы можете использовать find_element/3 чтобы найти элемент, соответствующий значению параметра, который вы хотите выбрать, а затем передать этот элемент click/1 выбрать его:

find_element(:css, "#cities option[value='london']") |> click()

Больше информации по этому вопросу GitHub


Пример реализации

defmodule CustomHelpers.Hound do
  use Hound.Helpers

  def select_drop_down(drop_down, option) do
    find_element(:css, "##{drop_down} option[value='#{option}']") |> click()
  end

  def select_drop_down_within(element, drop_down, option) do
    find_within_element(element, :css, "##{drop_down} option[value='#{option}']") |> click()
  end
end
Другие вопросы по тегам