stuart / elixir-webdriver Goto Github PK
View Code? Open in Web Editor NEWWebDriver client for Elixir.
License: MIT License
WebDriver client for Elixir.
License: MIT License
See if we can just use Erlang's httpc instead of HTTPotion/iBrowse as a back end.
Perhaps make the backend an option.
Implement Touch event handling. This is already in the base protocol module, it needs to be added based on what the session capabilities return.
Implement the geolocation calls. Already done in the base protocol but without any browsers to test it on.
Currently PhantomJS clears a field before sending the keys, FireFox does not.
Is there a way to make the behaviour consistent across both?
Add support for chrome driver.
Implement all the mouse events.
Create a Mouse module with calls to the wire protocol to do this.
Cookies need to be written to a record with a module providing functionality to
manipulate and query them.
I installed phantomjs via brew on my local machine.
I verified it is working with
[jonathan]: phantomjs -v
2.0.0
I then ran webdriver and am getting this error:
iex(1)> config = %WebDriver.Config{name: :browser}
%WebDriver.Config{browser: :phantomjs, name: :browser, root_url: ""}
iex(2)> WebDriver.start_browser config
** (exit) exited in: :gen_server.call(:webdriver, {:start_child, {:browser, {WebDriver.BrowserSup, :start_link, [%WebDriver.Config{browser: :phantomjs, name: :browser, root_url: ""}]}, :permanent, 5000, :worker, [WebDriver.BrowserSup]}}, :infinity)
** (EXIT) no process
(stdlib) gen_server.erl:190: :gen_server.call/3
Any intuition as to why this isn't working?
Thanks!
I created a clean Mix project (Elixir 1.2.2, Erlang 7.2.1, Mac OS X 10.11.3), and added webdriver as a dependency. Running mix deps.get
and mix
, I get the following error:
== Compilation error on file lib/webdriver/error.ex ==
** (CompileError) lib/webdriver/error.ex:75: the Access syntax and calls to Access.get/2 are not available for the value: WebDriver.Error.ErrorMessage
lib/webdriver/error.ex:74: (module)
I'm pretty new to Elixir, so I'm probably just doing something wrong โ any help gratefully received!
Implement the various IME functions that WebDriver specifications allow.
Firefox does not support getting the active element. This needs a better error report.
Currently both these break with an error "Window operations only supported for currently focussed window", passing "current" does not seem to work.
Add support for Non Text key presses as per: https://code.google.com/p/selenium/wiki/JsonWireProtocol#POST_/session/:sessionId/element/:id/value
Need to add a Debug flag that allows output of what calls are being made and what http requests are being sent.
There is already a debug_browser option that uses error_logger to print messages from the browser port.
Implement the session storage and local storage methods.
Hi!
Just discovered your code via Hex main page, looks pretty cool! :D
Now you registered it on Hex but for some reason without version number - I bet something broke during your publishing.
[EDIT] Saw your post on elixir-talk on publishing problems, so changing a bit focus of this issue
Your deps refer to non-Hex deps which will give, well, headaches when using your package, because this breaks dependency resolution.
As for httpotion
- it's on Hex already. jsonex
is not and there are several options here:
Currently none of the capabilities are checked when a function is used.
The session should check if the capability required is available before sending
a request.
The negotiated capabilities need to be stored in the session.
This is a known bug in ibrowse which has not yet been fixed:
See: valpackett/httpotion#17
And: cmullaparthi/ibrowse#101
=ERROR REPORT==== 24-Feb-2014::12:12:01 ===
** Generic server <0.1448.0> terminating
** Last message in was {tcp_closed,#Port<0.14124>}
** When Server state == {state,"localhost",63406,5000,#Ref<0.0.0.25182>,false,
undefined,[],false,#Port<0.14124>,false,[],
{[],[]},
undefined,idle,undefined,<<>>,0,0,[],undefined,
undefined,undefined,undefined,false,undefined,
undefined,<<>>,undefined,false,3076112,0,
undefined}
** Reason for termination ==
** connection_closed
Firefox does not support getting a list of sessions. This needs a better error report.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.