Elixir Hound ждут загрузки страницы

Я отправляю форму входа в систему и пытаюсь потом захватить HTML, используя elixir / hound. После отправки я запускаю page_source и ничего не получите. Если я подожду секунду (чтобы страница загрузилась до конца), я вернусь к HTML.

Есть ли способ заставить гончую ждать, пока страница не загрузится?

В настоящее время я делаю: :timer.sleep(2000) как обойтись, надеясь на лучший путь:/

1 ответ

Решение

Вот что я делаю:

Создайте функцию, которая периодически проверяет состояние теста каждые 100 мс, в этом случае я жду появления определенного текста, используя visible_page_text

@tag timeout: 6000
test "My Test" do
  assert wait_for(fn -> Regex.match?(~r/Success/, visible_page_text()) end)
end

def wait_for(func) do
  :timer.sleep(100)
  case func.() do
    true -> true
    false -> wait_for(func)
  end
end
Другие вопросы по тегам