rodrigozc
Hello everyone,
I’m trying to automating navigation using Hound, but I’m having some troubles with select/option elements and how to interact with them.
For instance, I tried in different ways to select an option from the site “https://www.imovelweb.com.br/.”
I tried the solution below but didn’t work.
https://github.com/HashNuke/hound/issues/72#issuecomment-178071219
I’m using the selenium driver with the chrome browser.
$ brew install selenium-server-standalone
$ selenium-server -port 4444
use Mix.Config
config :hound,
driver: "selenium",
browser: "chrome"
I tried to select in the following ways:
def search() do
Hound.start_session()
navigate_to(@url)
find_element(:css, "#operationType option[value='1']")
|> click
#take_screenshot()
rescue
e ->
IO.inspect(e)
:notfound
after
Hound.end_session
end
Error
%RuntimeError{
message: "element not interactable: Element is not currently visible and may not be manipulated\n (Session info: chrome=79.0.3945.88)\nBuild info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'\nSystem info: host: 'Rodrigos-MacBook-Pro.local', ip: '2804:14c:4a:9f9d:1591:2820:1fe7:d763', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.2', java.version: '1.8.0_131'\nDriver info: driver.version: unknown"
}
def search() do
Hound.start_session()
navigate_to(@url)
find_element(:css, "#operationType")
|> find_within_element(:css, "option[value='1']")
|> click
#take_screenshot()
rescue
e ->
IO.inspect(e)
:notfound
after
Hound.end_session
end
Error
%RuntimeError{
message: "element not interactable: Element is not currently visible and may not be manipulated\n (Session info: chrome=79.0.3945.88)\nBuild info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'\nSystem info: host: 'Rodrigos-MacBook-Pro.local', ip: '2804:14c:4a:9f9d:1591:2820:1fe7:d763', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.2', java.version: '1.8.0_131'\nDriver info: driver.version: unknown"
}
I was wondering if I have to click on the select element before to show the options and then click on the chosen option, but when I tried to click on the select element I got another error.
def search() do
Hound.start_session()
navigate_to(@url)
find_element(:css, "#operationType")
|> click
#take_screenshot()
rescue
e ->
IO.inspect(e)
:notfound
after
Hound.end_session
end
Error
%RuntimeError{
message: "element not interactable\n (Session info: chrome=79.0.3945.88)\nBuild info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'\nSystem info: host: 'Rodrigos-MacBook-Pro.local', ip: '2804:14c:4a:9f9d:1591:2820:1fe7:d763', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.2', java.version: '1.8.0_131'\nDriver info: driver.version: unknown"
}
Thanks!
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app?
Looking for hints regarding:
Addi...
New
Kia ora,
We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
Hi all, I wanted to ask how the community is dealing with post-release steps.
Today we have Ecto migrations, which make sure that the db...
New
Hello,
I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #phoenix_html
- #iex
- #graphql
- #ai
- #genstage
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex











First 9 of 9 Posts
wolfiton
I don’t see this in your code
This is what I am using to test by following this book https://shankardevy.com/phoenix-inside-out-mpf/ . But it uses phantomjs
Also if you use Linux install phantomjs like this Problem with acceptance test in hound not starting server on port 4001
Update found this in my tests, it might be similar with what you need:
rodrigozc
I’m using hound to get some informations from a website, not for test purposes, sorry about my tag
test, it’s not the case.My module contains
use Hound.Helpers, I think thathound_session()is used just in test cases to setup the session in thesetupmethod.I tried using
PhantomJStoo, in this case, I did not even make it select the option. When I inspected the HTML, the option values were blank. It’s weird, I know, so I changed the code to use theSelenium.I’m starting and finishing the session in the method.
Below is the whole module.
wolfiton
To use phantomjs you need to run this
phantomjs --wdin a terminal window and at the same time in a new window yourmix phx.serverThat should work. If it doesn’t I really don’t know what is happening.
wolfiton
Are you trying to extract something from a webpage?
If so then HTTPoison(GitHub - edgurgel/httpoison: Yet Another HTTP client for Elixir powered by hackney · GitHub) might be a better option and this GitHub - philss/floki: Floki is a simple HTML parser that enables search for nodes using CSS selectors. · GitHub
rodrigozc
The idea is to use navigation with Hound to filter some data filling the form and after that to use Floki to parse data.
rodrigozc
With
PhantonJSI cannot find the element, executing the same find_element I got the error below.Inspecting the
#operationTypeelement withPhantonJSI saw that all options had blank values.wolfiton
This is strange have you tried to extract just an h1 tag to see if hound is working?
rodrigozc
Yes, I can get h1 tag.
Result:
wolfiton
OK then how about writing your select like this:
If this doesn’t work either then try to create a minimal example only with a slect and test hound on that to see if that works.
If it does then you most certenly have a problem in your actual code or a bug.