如何从带有Hound的选择下拉列表中选择一个选项?

时间:2018-04-16 16:12:18

标签: testing elixir integration-testing hound

我有以下下拉列表:

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

我正在使用Hound Elixir 中编写集成测试,我想在提交表单之前从上面的列表中选择一个元素。我可以用猎犬做到吗?

我找不到Hound documentation中的下拉列表。

1 个答案:

答案 0 :(得分:1)

目前没有专门用于从下拉列表中选择元素的Hound函数。

但是,您可以使用find_element/3查找与您要选择的选项值对应的元素,然后将此元素提供给click/1以选择它:

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

More information on this GitHub issue

实施例

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