Elixir library for browser automation and integration testing with support for multiple webdrivers.
Hound is an Elixir library for browser automation and writing integration tests. It provides an Elixir-native interface to interact with web browsers via the WebDriver Wire Protocol, enabling developers to simulate user interactions and test web applications effectively, particularly JavaScript-heavy ones.
Elixir developers, especially those using Phoenix, who need to write integration tests for web applications or automate browser interactions. It's suited for teams testing JavaScript-heavy applications and requiring concurrent browser sessions.
Developers choose Hound for its idiomatic Elixir API that integrates seamlessly with ExUnit and Phoenix, leveraging Elixir's concurrency to run multiple browser sessions simultaneously. It simplifies browser automation with automatic retries for dynamic content and supports Selenium, ChromeDriver, and PhantomJs.
Elixir library for writing integration tests and browser automation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Hound enables running multiple browser sessions simultaneously, ideal for testing concurrent user interactions, as shown in its provided test examples.
It seamlessly integrates with ExUnit and Phoenix, offering idiomatic helpers for navigation and elements, making it feel like a natural part of the Elixir testing stack.
The library automatically retries actions before reporting errors, which gracefully handles JavaScript-heavy applications with asynchronous updates.
Hound supports Selenium (Firefox, Chrome), ChromeDriver, and PhantomJs by implementing the WebDriver Wire Protocol, providing flexibility in browser choice.
PhantomJs support has significant issues, such as shared cookies across sessions and unimplemented features like JavaScript alerts, as admitted in the README's caveats section.
Hound requires an external webdriver server (e.g., Selenium or ChromeDriver) to be running separately, adding setup complexity and maintenance overhead.
Internet Explorer compatibility is untested and not guaranteed, and PhantomJs's known bugs may hinder reliable testing for specific browser behaviors.